Macos 获取文件夹(或子文件/文件夹)上次修改日期和时间
是否可以获取文件夹的修改日期和时间?Macos 获取文件夹(或子文件/文件夹)上次修改日期和时间,macos,bash,Macos,Bash,是否可以获取文件夹的修改日期和时间? 我知道您可以使用stat-f“%m”文件夹,但它不反映子文件/文件夹的更改 不起作用的事情: ls-l文件夹-不反映文件夹内的更改 stat-f“%m”文件夹-同上 date-r文件夹-再次相同 find foo bar baz-printf-我的find版本上不存在printf选项 事物的版本: 操作系统:Mac OS X 10.7.1 Bash:GNUBash,版本3.2.48(1)-发行版(x86_64-apple-darwin11) 您可以尝试
我知道您可以使用
stat-f“%m”文件夹
,但它不反映子文件/文件夹的更改
不起作用的事情:
-不反映文件夹内的更改ls-l文件夹
-同上stat-f“%m”文件夹
-再次相同date-r文件夹
-我的find版本上不存在find foo bar baz-printf
选项printf
- 操作系统:Mac OS X 10.7.1
- Bash:GNUBash,版本3.2.48(1)-发行版(x86_64-apple-darwin11)
ls
获取该日期:
ls -ld mydir | awk -F' ' '{ print $6 " "$7 }'
解决方案:
find . -exec stat -f "%m" \{} \; | sort -n -r | head -1
说明:
find
命令遍历当前目录(
),并对遇到的每个文件执行(-exec
)命令stat-f“%m”
stat-f“%m”
打印文件的最后修改unix时间戳sort-n-r
按相反顺序(-r
)对find
命令的输出进行数字排序(-n
)。这将首先列出最新的修改时间戳head-1
然后从sort
中提取输出的第一行。这是所有文件的最新修改unix时间戳-r seconds打印以秒表示的日期和时间,其中秒是自纪元(UTC,1970年1月1日,00:00:00;请参阅时间(3))以来的秒数,可以用十进制、八进制或十六进制指定。
+1@Tylio但要澄清-“date-r文件夹+'%s'”-将返回纪元后的秒数查看“日期--帮助”了解更多信息information@ChrisK-r
表示GNUdate
中的参考文件,这似乎是您在BSDdate
(Mac OS X使用的风格)中所指的参考文件,其行为如Tyilo的评论中所述尝试此处列出的答案:无,在Mac OS X 10.7.1的find
中未实现printf
选项时,它们中的任何一个都可以工作。您是否在特定目录中查找最近修改的文件或目录?您希望得到多大的递归性?我更熟悉GNU/Linux方面的内容,而不是BSD风格find-printf
通常很有用,但如果没有它,您可能可以使用ls-lRt | head-n1
(-t
用于mtime排序,-R
用于递归列表)@Tyilo是的,您是对的<代码>ls无论如何都不是最好的方法。可能类似于find-execdir stat-f'%m%N'\{}\\|排序-nr | head-n1
替换find-printf
。此示例仍然需要添加空终止符以正确处理所有文件名,但总体思路应该可行。不考虑子文件我不确定“子文件”是什么意思,但是在我的系统中,在目录中创建的新文件将更新父目录修改时间。@JJ不在我的目录中不幸的是,YODD。我使用Ubuntu Linux FWIW.im使用Lubuntu 13.04,在子文件夹中创建新文件不会更新父目录。如果能了解每个部分的工作原理,该命令会使我的计算机崩溃。@hermanningjaldson添加了一个解释。如果您使用的是基于Linux的操作系统,而不是基于BSD的操作系统,这可能不适用于您。如果有人删除文件夹中的文件,这会提供错误的信息。例如,假设您正试图维护一个文件夹的md5哈希,并且希望知道何时重新计算它。那么这就行不通了。。。