0

当我运行这个命令时:

root:/home/mws 0$ ls -lrt `find /home/data/ll_misc_logs/ -mtime +20`

而且没有符合mtime设置的文件,20天,它列出了当前目录的内容,/home/mws 为什么?有没有办法不返回任何内容或消息?

4

2 回答 2

3

当没有满足 mtime 设置的文件时,输出find ....扩展为 ... 无。在这种情况下,您的命令变为ls -lrt,它将始终列出当前目录。

如果典型运行中没有太多文件,这可能会更好:

find /home/data/ll_misc_logs -mtime +20 -print0 | xargs -0 -r ls -ltr

但是,如果您有这么多文件xargs决定将其拆分为多个调用,那么它可能也不会完全按照您的意愿行事。

这导致我......你到底想做什么?从表面上看,它看起来像“按修改时间顺序显示旧文件”,但它可能是更大问题的一部分,可能会以更有效(且不易出错)的方式解决......

于 2013-06-28T16:50:28.400 回答
0

如果您只想按最旧的第一个排序超过 20 天的文件列表:

find /home/data/ll_misc_logs -mtime +20 -exec ls -l --time-style=%s {} \; | sort -n -k 6
于 2013-06-28T18:58:40.680 回答