目录的最后修改日期

目录的最后修改日期

有没有办法获取目录(包括子目录)的最后修改日期?通过 shell 脚本还是 php?

谢谢!

答案1

这是一个假设 Linux(或更一般的 GNU find)的 shell 解决方案。为简单起见,不支持包含换行符的文件名。

find /path/to/directory -type f -printf '%T@:%p\n' |
sort -t : -k 1 -nr |
head -n 1 |
sed -e 's/^[^:]*://'

快速解释:
  • 列出树中的所有常规文件;对于每个文件,打印其修改时间、冒号和名称。
  • 按降序排列。
  • 仅保留第一行。
  • 删除前导数字和:

答案2

Unix“stat”命令将提供此信息,以及同名的 PHP 函数。

答案3

我不确定你在问什么,但你试过吗ls -la ?

甚至...找到./-exec ls -lah {} \; 查看所有内容的最后日期。

(可部署在*nix系统上)

答案4

如果您想要查看某个位置的所有目录/子目录(而不是任何文件)的列表,并按其上次修改日期排序(并显示),您可以使用以下命令:

ls -lRt | grep ^d

更新:您可以更进一步,将输出限制为最后修改日期和目录名称,方法是使用

ls -lRt | grep ^d | awk '{print $6" "$7" "$8, $9}'

这两个列表的唯一问题是您无法获得每个目录的完整路径,因此很难分辨哪些目录是子目录。

相关内容