【发布时间】:2017-04-30 21:30:31
【问题描述】:
我有一个包含很多子目录的目录,包括文件。 对于每个 WAV 文件,我想通过在文件开头添加创建日期(首次创建文件 WAV 的日期)来重命名 WAV 文件(不更改文件本身的时间戳)。
下一步是将WAV文件转换为MP3文件,这样我会节省硬盘空间。
为此,我正在尝试创建一个 bash 脚本,但遇到了一些问题。
我想保持与原始目录相同的结构,因此我在想类似的东西:
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
【问题讨论】:
-
只有“最后一次访问数据的时间,最后一次修改数据的时间,最后一次改变文件状态的时间”。你需要哪一个?
-
for file in *.wav可以,不需要反引号和 ls。 -
重新阅读
man stat和其他stat文档。您应该能够在没有所有awk ..| sed ..的情况下生成所需的日期字符串。祝你好运。