使用 Mac OS X 终端,如何编写find
按修改日期对结果进行排序的命令(最近的在前)?
已经有类似的问题了,但它们指的是 GNUfind
和 POSIX,但我不知道 Mac OS X 是 GNU 还是 POSIX 还是其他什么。
答案1
OS X 完全POSIX符合。
类似这样的事情应该做:
find . -type f -name "*.txt" -print0 | xargs -0 ls -tl
一些说明:
-t
中的选项将按ls
排序mtime
。xargs
用于将文件名作为参数传递给ls
。请注意,如果文件名称中有空格,则必须使用-print0
infind
和-0
inxargs
。此外,最大参数数量为受ARG_MAX
变量限制。要找出这些有多少,请输入getconf ARG_MAX
。- 您可以提供
-r
反转排序顺序(→最旧的文件优先) - 其他
find
和ls
选项 – 与往常一样 – 在手册(man find
或man ls
)中概述。