对除少数文件和文件夹之外的整个文件夹进行 tar 处理?

对除少数文件和文件夹之外的整个文件夹进行 tar 处理?

我有一个像这样的文件夹结构:

file1
file2
file3
file4
folder1
folder2

如果不写入每个文件,我怎样才能 tar zip 除 file1 和 folder1 之外的所有文件和文件夹?

答案1

tar 有一个 --exclude 开关。

答案2

您可以使用--exclude=pattern选项来阻止对名称与通配符(模式)匹配的任何文件或成员进行操作。例如,要创建一个包含目录中所有内容(src名称以 结尾的文件除外)的存档.exe,请使用以下命令tar -cf src.tar --exclude='*.exe' src

答案3

如果不写入每个文件,我怎样才能 tar zip 除 file1 和 folder1 之外的所有文件和文件夹?

假设包含您要压缩的所有文件/文件夹的主文件夹位于/home/admin/mystuff/(即/home/admin/mystuff/file1/home/admin/mystuff/folder1/等),则以下任一方法都可以。


如果您当前位于该/home/admin/文件夹内,您可以执行以下操作:

tar -cz --exclude mystuff/file1 --exclude mystuff/folder1/ -f my_new_file.tar.gz mystuff

或者,如果您在想要压缩的目录中(在本例中为/home/admin/mystuff/),您可以执行以下操作:

tar -cz --exclude file1 --exclude folder1/ -f my_new_file.tar.gz .

注意第二个选项末尾的点。

还请注意,我之所以使用是tar -cz因为我更喜欢.tar.gz文件...如果您只想要一个.tar文件,您只需将命令更改为tar -c --exclude [...](删除来自z-cz,然后将输出文件从更改my_new_file.tar.gzmy_new_file.tar

相关内容