Linux按创建日期和给定文件名对文件进行排序

Linux按创建日期和给定文件名对文件进行排序,linux,shell,sorting,Linux,Shell,Sorting,我需要将这些命令组合起来,以便使用指定的“文件名”创建按日期排序的列表 我知道可以通过以下方式按日期对文件进行排序: ls-轻轨 以及按名称查找具有 找到-名称“文件名*” 我不知道如何把这两者结合起来。我试过使用管道,但没有得到正确的结果 [编辑] 未分类 我最好的猜测是使用xargs: find . -name 'filename*' -print0 | xargs -0 /bin/ls -ltr 参数的数量有一个上限,但除非它们占用超过32kB(读取更多),否则应该不会有问题,在这种情况

我需要将这些命令组合起来,以便使用指定的“文件名”创建按日期排序的列表

我知道可以通过以下方式按日期对文件进行排序:

ls-轻轨

以及按名称查找具有

找到-名称“文件名*”

我不知道如何把这两者结合起来。我试过使用管道,但没有得到正确的结果

[编辑] 未分类
我最好的猜测是使用
xargs

find . -name 'filename*' -print0 | xargs -0 /bin/ls -ltr
参数的数量有一个上限,但除非它们占用超过32kB(读取更多),否则应该不会有问题,在这种情况下,您将获得已排序文件块:)

您可能必须根据您的ls版本输出的内容调整cut命令

find . -name "filename" -printf '%TY:%Tm:%Td %TH:%Tm %h/%f\n' | sort

忘记xargs。“查找”和“排序”是您所需要的所有工具。

检查以下共享命令:

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

+1:我很好奇你是如何找到“超过32k个”的。我怀疑限制比那小。IIRC,在Linux上,environment+命令行参数的总大小必须小于等于128 KiB,在这种情况下,每个长度为8个字符的文件名的限制为16k左右。不过,这是对细节的警告,不是主要的反对意见。@JonathanLeffler您是对的,它应该是32kB(取决于系统,但似乎是合理的最小值),而不是32000个参数:)可以通过运行
getconf arg_MAX
找到exec arg size limit,除非你对
-printf
格式有实用知识:)那么,你来这里是为了学习东西,不是吗?我甚至不记得find有一个-printf选项,直到我选中“ManFind”并注意到它。谢谢你,太棒了
$ 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