一般直接用 tar 命令打包很简单, 直接使用 tar -czvf test.tar.gz test 即可.
在很多时候, 我们要对某一个目录打包, 而这个目录下有几十个子目录和子文件, 我们需要在打包的时候排除其中 1,2 个目录或文件.
这时候我们在用 tar 命令打包的时候, 增加参数 --exclude 就能达到目的.
例如:
我们以 tomcat 为例, 打包的时候我们要排除 tomcat/logs 目录, 命令如下:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat
如果要排除多个目录, 增加 --exclude 即可, 如下命令排除 logs 和 libs 两个目录及文件 xiaoshan.txt:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat
这里要说一下注意事项:
大家都知道 Linux 在使用 tab 键的时候会对目录名称自动补全, 这很方便, 大家也比较常用.
如我们输入 tomcat/lo 的时候按 tab 键, 命令行会自动生成 tomcat/logs/ , 对于目录, 最后会多一个 "/"
这里大家要注意的时候, 在我们使用 tar 的 --exclude 命令排除打包的时候, 不能加 "/", 否则还是会把 logs 目录以及其下的文件打包进去.
错误写法:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs/ --exclude=tomcat/libs/ tomcat
正确写法:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat
来源: http://www.bubuko.com/infodetail-3037449.html