当我创建一个目录说 d1 并在 5 秒后 d1/d2 后,d1 时间戳会更新为 d2 的时间戳。5 秒后,当我创建 d1/d2/d3 时,只有 d2 时间戳更新为 d3,而不是 d1。
基本上,我的要求是不仅父文件夹,而且从根到父文件夹的所有文件夹都必须随父文件夹的时间更新。
有没有办法用 d3 更新 d1 的时间戳?
请说清楚。
当我创建一个目录说 d1 并在 5 秒后 d1/d2 后,d1 时间戳会更新为 d2 的时间戳。5 秒后,当我创建 d1/d2/d3 时,只有 d2 时间戳更新为 d3,而不是 d1。
基本上,我的要求是不仅父文件夹,而且从根到父文件夹的所有文件夹都必须随父文件夹的时间更新。
有没有办法用 d3 更新 d1 的时间戳?
请说清楚。
find . -type d -exec touch -m -r d3 {}\;
查找当前目录中的所有目录并将时间戳更新为当前时间...
find . -type d -exec touch -r d1/d2/d3 -m {} \;
触摸选项: -r:参考文件。此 ref 文件的时间戳将用于触摸。 -m :更改修改时间。
这将找到pwd下的所有目录,并将每个目录的修改时间修改为d1/d2/d3目录的修改时间。假定您位于具有目录 d1 的目录中。
这将仅设置添加文件路径上的目录的修改时间。
所以在这棵树上
d1
d1/d2
d1/d2/d3 <-- this is the one we are adding
d1/d2a
d1/d2a/d3a
只有d1
并且d1/d2
会受到影响。
CHILD="d1/d2/d3"
DIR=`dirname "$CHILD"`
while [[ "$DIR" != "." ]]
do
touch -m -r "$CHILD" "$DIR"
DIR=`dirname "$DIR"`
done