列出目录(和子目录)中的所有文件(带完整路径),按访问时间排序

And*_*rew 21 linux bash ls find

我想构建一个Linux命令,列出按访问时间排序的特定目录(和子目录)中的所有文件(及其完整路径).

ls可以按访问时间排序,但不提供完整路径.find给出了完整的路径,但是你在访问时间内唯一的控制就是用-atime N(至少24*N小时前访问)指定一个范围,这不是我想要的.

有没有办法按访问时间排序并立即获得完整路径?我可以写一个脚本,但似乎应该有一种方法来使用标准的Linux程序.

Ale*_*lex 20

find . -type f -exec ls -l {} \; 2> /dev/null | sort -t' ' -k +6,6 -k +7,7
Run Code Online (Sandbox Code Playgroud)

这将找到所有文件,并按日期和时间对它们进行排序.然后,您可以使用awkcutls -l输出中提取日期和文件名


Ken*_*ent 11

你可以尝试:

 ls -l $(find /foo/bar -type f )
Run Code Online (Sandbox Code Playgroud)
  • 您可以添加其他选项(例如-t进行排序)来ls命令实现您的目标.
  • 您也可以将搜索条件添加到findcmd

  • 请记住,因为`$(find DIRECTORY -type f)`的输出被用作`ls -ult`的命令行参数,你将被限制为`getconf ARG_MAX`文件 (2认同)