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



是否可以获得一个文件夹的修改日期和时间?
我知道你可以使用stat -f "%m" folder,但是它不能反映子文件/文件夹的变化。

不工作的事情:

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

事物的版本:

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

解决方案:

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

解释:

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

你可以试试'date -r folder'给你最后修改的日期

你可以从ls:

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

如果您需要在构建后清除缓存。然后,您可以检查最后更改的年龄,并删除它,像这样

sh("find ~/Library/Developer/Xcode/DerivedData/ -type d -maxdepth 1 -mmin +360 -name 'Cache-folder-*' -print0 | xargs -0 -I {} /bin/rm -rf '{}' || echo 'There is no such folder! Start script execution' ; exit 0")

sh("find ~/Library/Developer/Xcode/DerivedData/ -type d -maxdepth 1 -mtime 0 -name 'Cache-folder-*' -ls -exec rm -r {} \;")

最新更新