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