关于tar的绝对路径报错问题
2017-11-30 本文已影响0人
飞翔的Tallgeese
需求:将目录下大于100M的log进行压缩打包
find /var/log/webapps/cnvex-wallet -size +100M | awk '{print "tar -xzf "$1"tar.gz "$1}'|bash
执行时报错
tar: Removing leading `/' from member names
一种治标不治本的方法是:
百度的说法是加上大写的P参数可以忽略该问题
注意必须是f在最后,如果是 tar -xzfP会提示其他错误
但是采用上面的方法在解压的时候会有新的麻烦
比如前面的路径:/var/log/webapps/cnvex-wallet -size/
在解压不带参数的时候,解压的包会出现在这个目录下:/var/log/webapps/cnvex-wallet -size/var/log/webapps/cnvex-wallet -size/
根本的解决方法是:
tar认的是相对路径,所以先cd到需要压缩的路径下,然后执行
find -size +100M | awk '{print "tar -zcPf "$1".tar.gz "$1 }'|bash (我find后面是没有跟路径的,所以$1不会带上绝对路径)
Done