在bash中按日期对文件列表进行排序

DMC*_*ing 4 sorting bash datetime

给定一个包含一些文件列表的文本文件,例如

$ cat file_list.txt
/var/x/file1.txt
/var/y/file2.txt
<etc>
Run Code Online (Sandbox Code Playgroud)

如何根据某些标准对文件列表进行排序 - 例如上次访问时间或上次更改时间?

提前致谢。

anu*_*ava 5

您可以像这样使用stat命令sort

while read -r line; do
   stat -c '%Y %n' "$line"
done < file_list.txt | sort -n | cut -d ' ' -f2
Run Code Online (Sandbox Code Playgroud)
  • stat -c '%Y %n'列出上次修改的时间,自纪元以来的秒数,后跟一个空格和文件名
  • sort -n 以数字方式对时间戳及其文件名进行排序
  • cut -d ' ' -f2 仅打印 sort 输出中的文件名