这篇文章并不是发布最早的但是阅读量却每天都见长,很想知道各位大大是怎么找到这篇文章的。如果不忙,还请各位大大评论一下我看看,没准我可以为大家改进一下本文,提升一下质量。

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

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

2.tar命令的小坑:当命令顺序出错的时候,报错  You must....

tar -fxz spa.service_dc.tgz

│tar: You must specify one of the '-Acdtrux', '--delete' or '--test-label' options

│Try 'tar --help' or 'tar --usage' for more information.

由于Linux下打包工具的压缩格式真的超级多(tar/tgz/tar.gz/tar.bz2/tar.xz),而tar 着一条命令能干的事情也不少,所以刚接触还真的会有些头秃。

他的命令中可带的选项,分为下面几种:

1.必选选项,有且只有一个,必须放在选项的第一个位置,否则报上面的错。

  -c 新建; -x 解压; -t 查看压缩文档内容; -r追加; -u 更新包中的文件

2.压缩选项,没有的话就是单纯的用tar打个包(不附带压缩功能),这类选项是可选的

  -z 使用gzip进行之前选项的操作,对应的文件后缀是*.tgz / *.tar.gz

  -j 使用bzp2的算法进行操作,对应的文件是*.tar.bz2

3.额外选项,建议放在最后一个选项的位置

  -v 显示操作步骤(都把什么东西解压出来了)

  -f 使用文件名,文件名必须紧跟在这个选项后面!

最新文章

  1. MongoDB学习笔记(1):MongoDB简介
  2. iOS runtime实用篇解决常见Crash
  3. IRC常用命令
  4. unity, animtion倒放
  5. ffmpeg 打开视频流太慢(上)
  6. Const #define
  7. Delphi + Asm - TBits类的学习
  8. unity3D中重要函数
  9. Swift迁入第三方库时的版本错误解决
  10. Lucene工作原理
  11. Java设计模式——模板方法模式
  12. D的下L
  13. Application 、Cookie和 Session 两种会话有什么不同
  14. Shell test 命令
  15. iOS----KVC和KVO 详解
  16. C#单问号(?)与双问号(??)
  17. dubbo的本地存根(Stub)
  18. Moving Tables---(贪心)
  19. php 命令行参数
  20. STM32 变量无法赋值问题

热门文章

  1. 深入解读MySQL8.0 新特性 :Crash Safe DDL
  2. MySQL集群架构:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken
  3. Redis原理及使用
  4. mysql触发器new和old
  5. win10安装tensorflow-gpu1.13.1+cuda10.0+cudnn7.3.1
  6. react+redux+Instagram
  7. token登录
  8. Html5 Canvas介绍
  9. mysql7笔记----存储过程实例
  10. “尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。”