我想使用 GNUfind
命令根据模式查找文件,然后按最近修改文件到最近修改最少的顺序显示它们。
我明白这一点:
find / -type f -name '*.md'
但是然后将添加什么来对文件从最近修改到最少进行排序?
我想使用 GNUfind
命令根据模式查找文件,然后按最近修改文件到最近修改最少的顺序显示它们。
我明白这一点:
find / -type f -name '*.md'
但是然后将添加什么来对文件从最近修改到最少进行排序?
find
无法对文件进行排序,因此您可以改为输出修改时间加上文件名,按修改时间排序,然后再次删除修改时间:
find . -type f -name '*.md' -printf '%T@ %p\0' | # Print time+name
sort -rnz | # Sort numerically, descending
cut -z -d ' ' -f 2- | # Remove time
tr '\0' '\n' # Optional: make human readable
这使用\0
- 分隔的条目来避免任何类型的文件名出现问题。您可以将它直接安全地传递给许多工具,但在这里它改为管道以tr
将文件列表显示为单独的行。
find <dir> -name "*.mz" -printf "%Ts - %h/%f\n" | sort -rn
以纪元格式 (%Ts) 以及目录 (%h) 和文件名 (%f) 打印修改时间。通过管道将其通过 sort -rn 以相反的数字顺序排序。
通过管道输出find
toxargs
和ls
:
find / -type f -name '*.md' | xargs ls -1t