Linux系统下使用tar压缩时排除某个目录或文件
引言:
在/home/abc目录下有3个子目录:abc1、abc2、abc3、abc4,现在想把/home/abc目录下的abc1、abc2、abc3、打包成abc.tar.gz,不打包abc4。
操作如下:
cd /home
tar -zcvf abc.tar.gz --exclude=abc4 abc
可以在/home目录下面看到abc.tar.gz文件了,打包成功。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您的操作是正确的,使用tar
命令配合--exclude
选项可以实现在打包时排除特定的目录或文件。这里简要解释一下您使用的命令及其各部分的含义:
cd /home
: 这个命令用于切换当前工作目录到 /home
目录下。
tar -zcvf abc.tar.gz --exclude=abc4 abc
: 这是执行打包压缩的主要命令,具体说明如下:
tar
: 是一个用于归档和压缩文件的工具。-zcvf
: 是一组选项,分别表示:-z
: 表示使用 gzip
程序进行压缩,生成的文件以 .gz
结尾。-c
: 创建一个新的归档文件。-v
: 在处理文件时显示详细的处理信息,即 verbose 模式。-f
: 指定归档文件的名称,在这里就是 abc.tar.gz
。--exclude=abc4
: 这个选项告诉 tar
在打包过程中排除名为 abc4
的目录或文件。abc
: 是你想要打包的目录名,位于 /home
目录下。由于之前已经通过 cd
命令进入 /home
目录,所以这里直接指定目录名为 abc
即可。综上所述,这个命令的作用是在 /home
目录下创建一个名为 abc.tar.gz
的归档文件,该文件包含了 /home/abc
目录下的 abc1
、abc2
、abc3
子目录的内容,但不包括 abc4
目录。