tar.gz包内提取某个文件在指定目录下。

发布时间:2020-07-31 02:44:21 作者:misterfzw
来源:网络 阅读:196

想试试不解压从tar.gz包内提取某个文件到指定目录下,百度来的全是一个模板,没有示例,根本莫名其妙。经自己测试才算明白。
百度来的方法
tar包

tar tvf yourtarfile |grep fileyouwant,
tar xvf yourtarfile fileyouwant(copy上面的全路径用绝对路径)

tar.gz包

tar ztvf yourtargzfile |grep fileyouwant,

tar zxvf yourtarfile fileyouwant(copy上面的全路径用绝对路径)

思路就是先查出文件路径,再解压。但是上面的“全路径用绝对路径”是个什么鬼,经过折腾才算明白。先看操作过程。

[root@fengzw test]# pwd
/root/test
[root@fengzw test]# ls
mariadb-10.4.12.tar.gz
[root@fengzw test]# tar -tzvf mariadb-10.4.12.tar.gz | grep CMakeLists.txt
.....
-rw-rw-r-- buildbot/buildbot    17932 2020-01-27 04:43 mariadb-10.4.12/CMakeLists.txt
......
[root@fengzw test]# tar -zxvf mariadb-10.4.12.tar.gz mariadb-10.4.12/CMakeLists.txt -C ../
mariadb-10.4.12/CMakeLists.txt
[root@fengzw test]# cd ..
[root@fengzw ~]# ls
anaconda-ks.cfg  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Sources.repo  CentOS-Vault.repo  test  tools
[root@fengzw ~]# ls test/
mariadb-10.4.12  mariadb-10.4.12.tar.gz
[root@fengzw ~]# ls test/mariadb-10.4.12
CMakeLists.txt

切换个目录运行测试:

[root@fengzw ~]# ls test/
mariadb-10.4.12.tar.gz
[root@fengzw ~]# ls tools/testtar/
[root@fengzw ~]# tar -zxvf test/mariadb-10.4.12.tar.gz mariadb-10.4.12/CMakeLists.txt -C tools/testtar/
mariadb-10.4.12/CMakeLists.txt
[root@fengzw ~]# ls tools/testtar/
[root@fengzw ~]# ls test
mariadb-10.4.12.tar.gz
[root@fengzw ~]# ls
anaconda-ks.cfg  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Sources.repo  CentOS-Vault.repo  mariadb-10.4.12  test  tools
[root@fengzw ~]# ls mariadb-10.4.12/
CMakeLists.txt

由以上可知:

  1. 所谓的绝对路径,就是通过tvf查出来的路径,即从tar包名开始,而不是系统级别的绝对路径。这就是所谓"全路径"的概念。
  2. 如果是提取某个文件,-C指定存放位置不生效!!!
  3. 只能默认的提取至运行tar解压时当前所在系统路径下,而不是原压缩包所在路径。
  4. 会生成从tar包名开始的目录,按压缩包内路径存放提取出来的文件。
  5. 使用步骤总结:a,切换路径至需要存储提取文件的位置;b,查找列出所要提取文件的路径;c,提取文件。(但会生成新的目录,所以切换至路径也没什么意义)
推荐阅读:
  1. 如何使用tar包提取某个文件到指定路径
  2. python3.7脚本---遍历指定目录内所有文件

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

tar.gz 提取

上一篇:存储-Infortrend主要产品线全部支持25 GbE主机通道

下一篇:php中全等于===和等于==的区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》