获取文件夹(或子文件/文件夹)上次修改日期和时间

时间:2011-08-24 01:32:26

标签: macos bash

是否可以获取文件夹的修改日期和时间? 我知道您可以使用stat -f "%m" folder,但它不会反映子文件/文件夹的更改。

不起作用的事情:

  • ls -l folder - 不反映文件夹内的更改
  • stat -f "%m" folder - 与上述相同
  • date -r folder - 同样
  • find foo bar baz -printf - 我的find
  • 版本中不存在printf选项

事物的版本:

  • 操作系统:Mac OS X 10.7.1
  • Bash:GNU bash,版本3.2.48(1)-release(x86_64-apple-darwin11)

3 个答案:

答案 0 :(得分:13)

解决方案:

find . -exec stat -f "%m" \{} \; | sort -n -r | head -1

说明:

  1. find命令遍历当前目录(.),并且遇到的每个文件执行(-exec)命令stat -f "%m"stat -f "%m"打印文件的最后一个修改unix时间戳。
  2. sort -n -r以相反的顺序(find)对数字-n命令的输出(-r)进行排序。这将首先列出最新的修改时间戳。
  3. head -1然后从sort中提取输出的第一行。这是所有文件的最新修改unix时间戳。

答案 1 :(得分:6)

您可以尝试'date -r folder'来为您提供上次修改日期

答案 2 :(得分:0)

你总是可以从ls获得它:

ls -ld mydir | awk -F' '  '{ print $6 " "$7 }'