我只想克隆创建日期,并且源和目标中的文件名不同。它的名称部分是相同的,但扩展名不同。 AVI 视频位于一个目录中,MP4 位于另一目录中。
所以我想用touch --reference=file1 file2
.
在一个文件上效果很好,但我有大约 100 个文件。我有一个包含所有源文件名的文本文件。哦,其中很多也有空格和撇号。
答案1
像这样的东西吗?
for avi in *.avi
do
mp4="${avi%%.avi}".mp4
if [ -e "$mp4" ]
then
touch --reference="$avi" "$mp4"
fi
done
答案2
你所改变的时间touch
不是文件创建时间,而是修改时间(最新的Linux文件系统确实支持文件创建时间,但这有点无用,因为目前你需要特殊的工具来访问它)。
要按照 中的要求更改文件修改时间bash
,您可以在包含参考文件的目录中使用如下循环:
for ref_file in *.avi; do
touch -c --reference="$ref_file" "target_dir/${ref_file%avi}mp4"
done