有没有一种简单的shell命令/脚本可以排除某些文件/文件夹不被归档? 我有一个需要归档的目录,其中包含一个具有大量我不需要备份的非常大的文件的子目录。 用tar --exclude=PATTERN命令匹配给定的模式并排除那些文件,但我需要忽略特定的文件和文件夹(完整的文件路径),否则可能会排除有效的文件。我也可以使用find命令创建要排除的文件列表,并排除我不想存档的文件并将列表传递给tar,但这仅适用于少量文件。我有成千上万个文件。我开始认为唯一的解决方案是创建一个带有要排除的文件/文件夹列表的文件,然后使用rsync和--exclude-from = file将所有文件复制到tmp目录,然后再使用tar将该目录归档。有人能想到更好/更高效的解决方案吗? 编辑:Charles Ma的解决方案很好。 最大的问题在于--exclude='./folder'必须位于tar命令的开头。 完整命令(先CD,因此备份相对于该目录):
cd /folder_to_backup
tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .