在 tar 中使用 -T 选项的通配符

在 tar 中使用 -T 选项的通配符

我有一个备份脚本,其语法为“tar -czvf backup.tar.gz -T filelist”在此文件列表中,我列出了要备份的文件夹,但我还需要备份每个具有给定扩展名的文件,例如“* .jpeg”

文件名每天都在变化,这就是为什么我需要使用通配符,但它在文件列表中不被接受。

有没有什么解决方法可以使这个工作完成?

谢谢 !

答案1

我发现的最简单的解决方案是: tar -czvf backup.tar.gz $(cat filelist)

答案2

您是否尝试过使用 --wildcards ?

 tar -xf foo.tar -v --wildcards '*.c'

http://www.gnu.org/s/tar/manual/html_section/wildcards.html

答案3

创建一个 filelist.template,其中包含要始终备份的静态文件夹,然后每次将其复制到 filelist 并添加所有.jpeg文件。例如:

cp filelist.template filelist
ls *.jpeg >> filelist
tar -czvf backup.tar.gz -T filelist

如果需要,您也可以从各个位置使用find命令来代替。ls*.jpeg

相关内容