【问题标题】:recursive timestamp update in unixUnix中的递归时间戳更新
【发布时间】:2010-01-07 15:04:20
【问题描述】:

当我创建一个目录说 d1 并在 5 秒后 d1/d2 后,d1 时间戳会更新为 d2 的时间戳。 5 秒后,当我创建 d1/d2/d3 时,只有 d2 时间戳更新为 d3,而不是 d1。

基本上,我的要求是不仅父文件夹,而且从根到父文件夹的所有文件夹都必须随着父文件夹的时间更新。

有什么办法可以用 d3 更新 d1 的时间戳?

请澄清。

【问题讨论】:

    标签: unix-timestamp


    【解决方案1】:
    find . -type d -exec touch -m -r d3 {}\;
    

    查找当前目录下的所有目录,并将时间戳更新为当前时间...

    【讨论】:

    • 他想把所有目录的时间戳改成d3的时间戳。您的解决方案会将其更改为当前时间。
    【解决方案2】:
    find . -type d -exec touch  -r d1/d2/d3 -m {} \;
    
    触摸选项: -r:参考文件。此 ref 文件的时间戳将用于触摸。 -m :更改修改时间。

    这将找到pwd下的所有目录,并将每个目录的修改时间修改为d1/d2/d3目录的修改时间。假设您在目录 d1 所在的目录中。

    【讨论】:

      【解决方案3】:

      这将只设置路径上的目录的修改时间到添加的文件。

      所以在这棵树上

      d1
      d1/d2
      d1/d2/d3  <-- this is the one we are adding
      d1/d2a
      d1/d2a/d3a
      

      只有d1d1/d2 会受到影响。

      CHILD="d1/d2/d3"
      DIR=`dirname "$CHILD"`
      while [[ "$DIR" != "." ]]
      do
          touch -m -r "$CHILD" "$DIR"
          DIR=`dirname "$DIR"`
      done
      

      【讨论】:

        猜你喜欢
        • 2013-03-23
        • 2021-02-12
        • 1970-01-01
        • 1970-01-01
        • 2011-04-11
        • 2023-04-03
        • 2014-03-24
        • 2011-10-01
        • 1970-01-01
        相关资源
        最近更新 更多