bash - 在 bash 中按日期排序文件列表

标签 bash sorting datetime

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

$ cat file_list.txt
/var/x/file1.txt
/var/y/file2.txt
<etc>

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

提前致谢。

最佳答案

您可以像这样将 stat 命令与 sort 一起使用:

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

关于bash - 在 bash 中按日期排序文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575507/

相关文章:

c++ - 在 C++ 中重定向 bash stdin 和 stdout

linux - 两台服务器之间的远程 rsync 管道损坏

java - 从排序的 Char 数组中删除重复项

date - Flutter/Dart-以输入格式格式化日期

MySQL 5.7 时间戳字段显示日期时间?

linux - 自动完成和历史浏览如何在远程 shell (SSH) 中工作

python - python中列表的排序列表

javascript - 根据已排序的 "subset"数组的顺序有效地对无序的 "master"数组进行排序

python - 如何获取 pandas 数据框中带有日期时间索引的最后 n 行?

linux - 如何获取特定格式的时间 - Linux