tar命令打包压缩时排除.svn .git .repo等特定文件/文件夹报错/未生效

tar命令打包压缩时排除.svn .git .repo等特定文件/文件夹报错/未生效

当使用tar命令打包压缩的同时期望排除某类文件或文件夹时,可以使用--exclude参数。

在ubuntu20.04版本,执行命令tar -caf /tmp/mydocs.tar.gz * --exclude=.git报错,如下:

$ tar -caf /tmp/mydocs.tar.gz * --exclude=.git
tar: 下列选项在归档创建或更新模式中用在任何非可选参数之后。这些选项是可选的,且仅影响跟随其后的参数。请在安排参数顺序时谨慎处理。
tar: --exclude “.git” 无效果
tar: 由于前次错误,将以上次的错误状态退出

但是在ubuntu18.04版本,执行同样命令tar -caf /tmp/mydocs.tar.gz * --exclude=.git不会报错,但是解压mydocs.tar.gz之后,发现.git文件夹还在,说明--exclude=.git未生效。

正确用法:
需要将--exclude参数放在需要打包压缩的文件前面。正确命令如下:

$ tar --exclude=.git -caf /tmp/mydocs.tar.gz *

上述使用的比较通用的方法排除不期望打包在内的文件/文件夹。如果只是不期望包含版本控制系统的目录的话,还可以使用参数--exclude-vcs--exclude-vcs-ignores
注:vcsversion control system的缩写。

猜你喜欢

转载自blog.csdn.net/ljz0929/article/details/123108141
今日推荐