給定一個包含一些文件列表的文本文件,例如,在bash中按日期排序的文件列表
$ cat file_list.txt
/var/x/file1.txt
/var/y/file2.txt
<etc>
如何根據某些條件對文件列表進行排序 - 如上次訪問時間或上次更改時間?
在此先感謝。
給定一個包含一些文件列表的文本文件,例如,在bash中按日期排序的文件列表
$ 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'
名單去年修改的,因爲時代秒後面加一個空格和文件名sort -n
各種時間戳和其文件名數字cut -d ' ' -f2
僅打印排序輸出中的文件名嘗試一個襯裏(通過修改時間):
ls -t $(cat file_list.txt)
OR
ls -t `cat file_list.txt`
如果任何文件包含空格,這將失敗。此外,這受到路徑名稱擴展的影響。爲了「安全」:'(set -f; IFS = $'\ n'; ls -t $(cat file_list.txt))'。 – 2014-10-26 17:24:25
@gniourf_gniourf謝謝,我同意。 – SMA 2014-10-26 17:25:36
在OSX(BSD)等效stat命令是'STAT -f '%M%N'「 $行「'。 – 2017-10-16 19:37:57