![如何使用“find”并按 mtime 对结果进行排序? [复制]](https://linux55.com/image/42978/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E2%80%9Cfind%E2%80%9D%E5%B9%B6%E6%8C%89%20mtime%20%E5%AF%B9%E7%BB%93%E6%9E%9C%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F%EF%BC%9F%20%5B%E5%A4%8D%E5%88%B6%5D.png)
我想使用find
但像 一样按时间顺序对结果进行反向排序ls -ltr
。这是否可以通过标志或管道的任何组合来实现?
답변1
使用find
的-printf
命令输出时间(以可排序的方式)和文件,然后排序。如果你使用 GNU find,
find . your-options -printf "%T+ %p\n" | sort
-printf "%T+ %p\n"
为了方便起见,这里对from进行解释man find
:
%Tk
文件的最后修改时间,格式为 指定k
,与 相同%A
。- 在这种情况下
k
设置为+
+
日期和时间,以 分隔+
,例如“2004-04-28+22:22:05.0”。这是一个 GNU 扩展。时间以当前时区给出(可能会受到设置 TZ 环境变量的影响)。秒字段包括小数部分。
- 在这种情况下
%p
文件名。
답변2
如果这只是一个深度为 n(假设深度为 2)的文件夹层次结构,我发现这个很有用:
ls -laht --full-time */*