如何在压缩目录时按名称而非路径排除所有指定名称的文件和目录?
按名称批量排除文件/目录的zip命令
如果要排除./mydir下所有名为dir_x的文件和目录(无论它们处于哪个子路径),可以借助通配符**实现递归匹配,具体命令如下:
zip -r archive.zip ./mydir -x "**/dir_x" "**/dir_x/*"
参数说明:
**/dir_x:匹配任意层级路径下,名称为dir_x的文件或目录本身**/dir_x/*:匹配所有dir_x目录下的内容,确保整个目录及其内部文件都被排除
补充提示:
- 若仅需排除名为
dir_x的目录(不排除同名文件),可以只保留"**/dir_x/*"参数,但同时写两个参数能更彻底地排除目标对象 - 注意引号的作用:在bash等shell环境中,
**需要用引号包裹,避免被shell提前解析;如果你的shell不支持**(比如默认sh),可以改用多层*通配(如*/*/dir_x),但**更简洁通用(bash中可通过shopt -s globstar开启该特性)
内容的提问来源于stack exchange,提问作者Dante
相关产品推荐
相关产品推荐

