[Intern][2019.04.01]Linux 学习心得(2)

  时间过得真是快!二月份入职,现在已经四月份了!

==================================================

1.tar命令的小坑:当使用通配符*的时候,tar命令报错:  Not found in archive 

Root Cause: tar 命令的执行会先把 *.tar 翻译成 a.tar; b.tar; c.tar.... 然后再添加进整个命令,形成  tar -xvf a.tar b.tar c.tar ....  的结构再执行tar,然而该指令还有一个功能是解压缩某包中特定的文件,即  tar -xvf a.tar xxx.rmvb xxx.docx  。所以我们预期的输出应该是a; b; c; 三个tar文件都被解压缩成功,实际输出却变成在a当中寻找b和c并将二者单独解压缩出来,而在本案例中,a文件并没有b; c; 两个内容,所以出现了上述报错。

Solution  :在bash中使用管道和xargs: ls *.gz |xargs -n1 tar -xzf 

        使用循环

(ref = https://stackoverflow.com/questions/16933221/shell-tar-not-found-in-archive-error-when-using-regular-expression

猜你喜欢

转载自www.cnblogs.com/jackablack/p/10637181.html