给定一个包含一些文件列表的文本文件,例如
$ cat file_list.txt
/var/x/file1.txt
/var/y/file2.txt
<etc>
如何按某些条件对此文件列表进行排序 - 例如上次访问时间或上次更改时间?
提前致谢。
答案 0 :(得分:3)
您可以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
仅打印sort的输出中的文件名答案 1 :(得分:1)
尝试一个衬垫(修改时间):
ls -t $(cat file_list.txt)
OR
ls -t `cat file_list.txt`
答案 2 :(得分:0)
您可以使用
获取最近更改的文件cat file_list.txt | xargs stat -c '%Y %n' | sort | tail -1 | cut -c 12-
您可以获得最新的时间戳
cat file_list.txt | xargs stat -c '%Y %n' | sort | tail -1 | cut -c -10