Exclude common subdirectories when creating a tarball
我正在创建一个由ClearCase管理的大型代码库tarball。每个目录都有一个名为".cc"的子目录。我想把这些从我的皮球里排除出去。
我发现在创建.tar.gz文件时排除了目录,但排除了这一点似乎需要传递命令行上的每个.cc目录。在我的情况下,这是不切实际的。
是否有排除满足特定模式的目录的方法?
编辑:我不是在问如何排除一个特定的有限目录列表。我在问如何排除以特定模式结束的所有目录。
您可以键入
您可以使用
下面的bash脚本应该可以做到这一点。它使用了@marcus sundman给出的答案。
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/bin/bash echo -n"Please enter the name of the tar file you wish to create with out extension" read nam echo -n"Please enter the path to the directories to tar" read pathin echo tar -czvf $nam.tar.gz excludes=`find $pathin -iname"*.CC" -exec echo"--exclude \'{}\'" \;|xargs` echo $pathin echo tar -czvf $nam.tar.gz $excludes $pathin |
这将打印出您需要的命令,您只需复制并粘贴它即可。可能有一种更优雅的方法可以直接将其提供给命令行。
*.cc可以替换为任何其他公共扩展,这仍然有效。