我有一个文件夹,其中包含子文件夹,而子文件夹又包含子文件夹。我试过:
tar --exclude='*.msh' --exclude='*.geo' -czvf cont.gz run-1/*
压缩 run-1 中的所有文件和子文件夹,但不包括带有 msh 和 geo 扩展名的文件。但 tar 仍在添加这些文件。要排除的文件不在 run-1 中,而是在其子文件夹中,我不想明确指定位置。问题出在哪里?
编辑:下面是 run-1 下的子文件夹之一。其他子文件夹具有类似的结构。我也可以排除所有子文件夹中的 msh 文件夹。
run-1
|-np-8
|-nmesh-3
|-ncell-1
|-bunch of files
|-msh
|-bg.msh
|-bg.geo
答案1
尝试使用包含以下行的排除文件:
*.msh
*.geo
该命令如下所示:
tar -czvf cont.gz -X exclude-files.txt run-1/*
您也可以使用该find
命令创建要排除的文件列表,但这仅适用于少量文件。