如何在使用tar命令时排除一组文件和文件夹?
如何在使用tar命令时排除一组文件和文件夹?
有没有一种简单的shell命令/脚本来支持从备份中排除某些文件/文件夹?
我有一个需要备份的目录,其中包含一个具有许多非必要备份的非常大的文件的子目录。
不太完美的解决方案:
tar --exclude=PATTERN命令匹配给定的模式并排除那些文件,但我需要忽略特定的文件和文件夹(完整的文件路径),否则可能会排除有效的文件。
我也可以使用find命令创建一个文件列表,并排除我不想备份的文件,并将该列表传递给tar,但这仅适用于少量的文件。我有成千上万的文件。
我开始认为唯一的解决方案是创建一个包含要排除的文件/文件夹列表的文件,然后使用rsync将所有文件复制到tmp目录,并使用tar归档该目录。
请问有没有更好/更高效的解决方案?
编辑:Charles Ma的解决方案效果很好。大的注意点是--exclude=\'./folder\'
必须放在tar命令的开头。完整命令(首先cd,因此备份相对于该目录):
cd /folder_to_backup tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .
admin 更改状态以发布 2023年5月22日