我需要将这些组合到命令中,以便使用指定的“文件名”创建按日期排序的列表。
我知道按日期对文件进行排序可以通过以下方式实现:
ls -lrt
并使用
按名称查找文件找到。 -name“文件名*”
我不知道如何将这两者结合起来。我尝试使用管道,但没有得到正确的结果。
[编辑] 未排序
find . -name "filename" -printf '%TY:%Tm:%Td %TH:%TM %h/%f\n' | sort
忘记 xargs。 “查找”和“排序”都是您需要的工具。
我最好的猜测是使用
xargs
:
find . -name 'filename*' -print0 | xargs -0 /bin/ls -ltr
参数数量有上限,但这应该不是问题,除非它们占用超过 32kB(阅读更多这里),在这种情况下,您将获得排序文件块:)
find . -name "filename" -exec ls --full-time \{\} \; | cut -d' ' -f7- | sort
您可能需要根据您的 ls 输出版本来调整 cut 命令。
检查以下共享命令:
1) 列出文件目录以及上次修改日期/时间 要列出文件并在顶部显示最后修改的文件,我们将在 ls 命令中使用 -lt 选项。
$ ls -lt /run
output
total 24
-rw-rw-r--. 1 root utmp 2304 Sep 8 14:58 utmp
-rw-r--r--. 1 root root 4 Sep 8 12:41 dhclient-eth0.pid
drwxr-xr-x. 4 root root 100 Sep 8 03:31 lock
drwxr-xr-x. 3 root root 60 Sep 7 23:11 user
drwxr-xr-x. 7 root root 160 Aug 26 14:59 udev
drwxr-xr-x. 2 root root 60 Aug 21 13:18 tuned
https://linoxy.com/linux-how-to/how-sort-files-date-using-ls-command-linux/