我有一个像这样的文件夹结构:
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.gz
为my_new_file.tar
。