有没有办法获取目录(包括子目录)的最后修改日期?通过 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}'
这两个列表的唯一问题是您无法获得每个目录的完整路径,因此很难分辨哪些目录是子目录。