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

Tyi*_*ilo 8 macos bash

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

不起作用的事情:

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

事物的版本:

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

Tyi*_*ilo 13

解:

find . -exec stat -f "%m" \{} \; | sort -n -r | head -1
Run Code Online (Sandbox Code Playgroud)

说明:

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


小智 6

你可以试试'date -r folder'给你一个上次修改的日期

  • `-r seconds打印以秒表示的日期和时间,其中秒是自Epoch以来的秒数(1970年1月1日00:00:00;参见时间(3)),并且可以用十进制指定,八进制,或十六进制 (4认同)
  • @ChrisK`-r`表示GNU`date`中的引用文件,它似乎是你在BSD`date`(Mac OS X使用的味道)中所指的内容,它的行为与Tyilo的评论相同 (4认同)