Linux

关于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

上一篇下一篇

猜你喜欢

热点阅读