如何获取文件名按修改时间戳降序排列?
我应该补充一点,文件名可能包含除 \0
之外的任何特殊字符。
这是我到目前为止得到的。获取文件名及其 mtime 的循环,但它是未排序的:
while IFS= read -r -d '' fname; do
read -r -d '' mtime
done < <(find . -maxdepth 3 -printf '%p\0%T@\0')
最佳答案
如果你重新排序你的 find printf,它就变得很容易排序:
find . -maxdepth 3 -printf '%T@ :: %p\0'|\
sort -zrn |\
sed -z 's/^[0-9.]* :: //' |\
xargs -0 -n1 echo
sed
和 xargs
行只是剥离 mtime 然后对文件名做一些事情的例子。
关于linux - 获取按时间排序的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54617712/