簡體   English   中英

在bash中按日期對文件列表進行排序

[英]sort list of files by date in 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按數字sort -n時間戳及其文件名進行sort -n
  • cut -d ' ' -f2僅打印 sort 輸出中的文件名

嘗試一個班輪(按修改時間):

ls -t $(cat file_list.txt)

或者

ls -t `cat file_list.txt`

您可以獲得最近更改的文件

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM