在 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
您可以提供一种格式stat
:stat -c '%n: %y' somefile
将打印名称和最后修改时间somefile
(%n
实际上复制作为文件名传递的参数)。
find [...search parameters...] -exec somecommand {} \;
迭代所有文件和目录并对somecommand
每个匹配的文件/目录执行,将文件/目录名称作为参数传递。
综合起来:
find . -exec stat -c "%n: %y" {} \;
... 将迭代当前目录下的所有文件和目录,并打印其名称和最后修改日期。