是否可以获得一个文件夹的修改日期和时间?
我知道你可以使用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
解释:
-
find
命令遍历当前目录(.
),对于遇到的每个文件执行stat -f "%m"
命令(-exec
)。stat -f "%m"
打印文件最后一次修改的unix时间戳。 -
sort -n -r
将find
命令的输出按数字(-n
)和倒序(-r
)排序。这将首先列出最近的修改时间戳。 -
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 {} \;")