如何在基于 Unix 的系统中将修改日期和时间从一个文件/目录“复制”到另一个文件/目录?
问问题
6544 次
6 回答
29
你有一些选择:
touch -t STAMP -m file
如果您想更改时间,请使用- 如果
cp --preserve=timestamps
您正在复制文件并希望保留时间,请使用 - 用于
touch -r
将时间设置为“参考”文件
于 2013-03-03T00:19:59.117 回答
3
以后为了方便起见,将以下行放入您的 .bashrc 文件中:
cptimestamp() {
if [ -z $2 ] ; then
echo "usage: cptimestamp <sourcefile> <destfile>"
exit
fi
touch -d @$(stat -c "%Y" "$1") "$2"
}
执行“source ~/.bashrc”,你就可以开始了。如果您更喜欢脚本,请删除第一行和最后一行——然后在前面加上“#!/bin/sh”
于 2014-03-17T09:24:40.767 回答
3
这将完全满足您的要求:
触摸 -r "source_file" "destination_file"
于 2020-12-16T09:36:58.290 回答
1
您可以使用stat
unix 时间戳格式获取源文件的时间戳,然后使用将其传播到目标文件touch -d
src_file=/foo/bar
dst_file=/bar/baz
touch -d @$(stat -c "%Y" "$src_file") "$dst_file"
注意:这仅适用于支持使用前缀的GNU coreutils
unix 时间戳的情况@
touch
于 2013-03-03T00:35:12.130 回答
0
使用touch
;它包含几个可选标志,允许您设置此类属性。
于 2013-03-03T00:19:47.140 回答
0
如果您使用 cp,请使用 -p 选项来保留 mod 时间。cp -p
于 2013-03-03T00:29:36.477 回答