繁体   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