如何在基于Unix的系统中将修改日期和时间从一个文件/目录“复制”到另一个文件/目录?
答案 0 :(得分:20)
你有一些选择:
touch -t STAMP -m file
cp --preserve=timestamps
touch -r
设置“参考”文件的时间 答案 1 :(得分:2)
为方便起见,请将以下行放在.bashrc文件中:
cptimestamp() {
if [ -z $2 ] ; then
echo "usage: cptimestamp <sourcefile> <destfile>"
exit
fi
touch -d @$(stat -c "%Y" "$1") "$2"
}
执行“source~ / .bashrc”,你就可以开始了。如果您更喜欢脚本,请删除第一行和最后一行 - 然后添加“#!/ bin / sh”
答案 2 :(得分:1)
您可以使用unix时间戳格式的stat
获取源文件的时间戳,然后使用touch -d
src_file=/foo/bar
dst_file=/bar/baz
touch -d @$(stat -c "%Y" "$src_file") "$dst_file"
注意:这只适用于使用前缀GNU coreutils
和@
支持unix时间戳的touch
答案 3 :(得分:0)
使用touch
;它包含几个可选的标志,允许您设置这些属性。
答案 4 :(得分:0)
如果您使用的是cp,请使用-p选项保留mod时间。 cp -p
答案 5 :(得分:0)
这完全可以满足您的要求:
touch -r“源文件”“目标文件”