tar打包时候的2个注意点

打包的时候千万要注意语句的次序

暂时先不说打包的命令,我们来说一下拷贝的命令,比如将 /tmp/ 下面的所有文件及文件夹拷贝到 /a/ 下面,如下:
cp -r /tmp/* /a/

再来看看,将/tmp/下面的所有文件及文件夹打包成 /tmp/a.tar.gz 文件,命令如下:
tar zcvf /tmp/a.tar.gz /tmp/*

注意这2个语句的次序,cp source dest,而 tar dest source

所以,对于 tar 来说是非常容易弄错的,要是弄错了,重新再来也无所谓,要命的是,tar也不知道是怎么个的脑洞打开,假如次序弄错了,会把 source 给弄丢了,这样会导致严重的问题。

有一次,我就这么弄错了,然后把source 日志文件给弄丢了,犯了一次错误后,我以后每次用 tar 命令,我就会想起那次错误教训,每次都会小心再小心的使用tar命令,那有没有当打错次序后不会把 source 给弄丢的方式方法呢?很可惜,有是有的,但是没有特别好的,比如有人用 alias 来解决这个问题,但是没有用的,比如针对上面的,用 alias 的方法就失效了:tar zcvf /tmp/a.tar.gz /tmp/*

所以,tar的作者在写这个命令的时候是不严谨的,有缺陷的。

打包文件时把隐藏文件加入

tar zcvf /tmp/a.tar.gz /tmp/*, 这样的写法是不包含打包隐藏文件的
tar zcvf /tmp/a.tar.gz .[!.]* *, 需要这样写才可以

发表评论

邮箱地址不会被公开。 必填项已用*标注