私はファイルを含む多くのサブディレクトリを持つディレクトリを持っています。 各WAVファイルについて、ファイルの先頭にファイルのタイムスタンプを変更せずに、作成日(ファイルWAVが最初に作成された日付)を追加して、WAVファイルの名前を変更したいと考えています。Linux:バッチファイル名の変更で作成日が追加される
次のステップは、WAVファイルをMP3ファイルに変換することで、ハードドライブのスペースを節約します。
私はbashスクリプトを作成しようとしていますが、いくつか問題があります。
私は元のディレクトリと同じ構造を維持したいので、私のようなものを考えていた。ちょうど(シェルがそれらをグロブせ、ファイル名のリストを生成するためにls
を使用しないでください
for file in `ls -1 *.wav`
do name=`stat -c %y $file | awk -F"." '{ print $1 }' | sed -e "s/\-//g" -e "s/\://g" -e "s/[ ]/_/g"`.wav
cp -r --preserve=timestampcp $dir_original/$file $dir_converted/$name
done
「最後のデータアクセスの時刻、最後のデータ変更の時刻、およびファイルステータスが最後に変更された時刻」のみがあります。どちらが必要ですか? * .wavファイルのための – RomanPerekhrest
は、あなたがbackticksとlsを必要としません。 – codeforester
'man stat'と他の' stat'ドキュメントを再読み込みします。すべての 'awk .. 'がなくても、あなたが望む日付文字列を生成できるはずです。 sed .. 'もの。がんばろう。 – shellter