递归列出所有具有修改时间戳的文件和子目录

递归列出所有具有修改时间戳的文件和子目录

在 Unix Shell 中,您可以使用以下命令以递归方式打印所有文件和子文件夹的列表:

cd some/path/to/folder
du -a

您可以使用以下命令列出文件信息(例如权限和时间戳):

stat filename.ext

有没有办法可以组合这些命令以递归方式(使用相对路径)列出目录下的所有文件和子文件夹,然后显示修改时间?例如:

a_file.txt: 06/27/19 - 08:34:16
a_subfolder: 07/30/18 - 18:23:14

奖励:适用于 Linux 和 OSX 并输出到 txt 文件的东西

答案1

您可以提供一种格式statstat -c '%n: %y' somefile将打印名称和最后修改时间somefile%n实际上复制作为文件名传递的参数)。

find [...search parameters...] -exec somecommand {} \;迭代所有文件和目录并对somecommand每个匹配的文件/目录执行,将文件/目录名称作为参数传递。

综合起来:

find . -exec stat -c "%n: %y" {} \;

... 将迭代当前目录下的所有文件和目录,并打印其名称和最后修改日期。

相关内容