簡體   English   中英

tar提取最新文件

[英]tar extracting most recent file

使用bash,我的目錄為/ home / user / logs /

8月2日15:34 backup.20120802.tar.gz

8月3日00:26 backup.20120803.tar.gz

8月4日00:25 backup.20120804.tar.gz

8月15日06:39 backup.20120816.tar.gz

它每隔幾天就會更新一次,但是如果出現問題,我希望它自動恢復最新的備份,那么我怎么能只使用bash提取最新的備份呢?

ls -t1 /home/user/logs/ | head -1

為您提供/ home / user / logs /中的最新修改文件。 因此,您可以執行以下操作:

cd /dir/to/extract
tar -xzf "$(ls -t1 /home/user/logs/ | head -1)"

注意:
這假定/ home / user / logs /是平坦的,並且只包含“ * .tar.gz”文件

如果時間戳可能並不總是可靠的,請嘗試按日期排序。

ls -1 /home/user/logs/backup.*.tar.gz | sort -t . -k2rn | head -1

理想情況下,您不應解析ls的輸出,但是如果只有與通配符匹配的定期命名文件,則這可能是最簡單的解決方案。 無論如何, sort期望面向行的輸入,因此在完全任意文件名的一般情況下,任務變得更加復雜。 (這對您來說可能沒有意義,但是就Unix而言,有一個名為backup.20120816.tar.gz(newline)backup.20380401.tar.gz的文件就可以了。)

暫無
暫無

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

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