快速的方法来提取档案
确切的文件我目前使用此命令提取存档快速的方法来提取档案
tar xzvf *.gz *.sql
它位于内名为.tar.gz第一级只有1 .sql文件。像:
- archive.tar.gz
- bla.sql
- 文件夹
- ...
,但似乎这个命令扫描整个tar.gz的,它需要很长时间。
有没有什么快捷方式?有什么建议么?
- archive.tar.gz
- bla.sql
- 文件夹
- ...
如果你想只bla.sql提取,只需添加文件的完整路径(归档)参数:
tar xvf archive.tar.gz bla.sql
又如:
- test.tar.gz
- foo.sql
- 夹
- bar.sql
- 巴兹
如果你想提取foo.sql
和baz
:
tar xvf test.tar.gz foo.sql Folder/baz
如果要提取所有.sql
文件:
tar xvf test.tar.gz --wildcards "*.sql"
您可能要添加引号:''* .sql''。否则,在参数传递给'tar'之前,shell将执行扩展。 –
你说得对,我编辑了我的答案。然而,我尝试了这些命令,并且一切正常(使用GNU bash 4.3和tar 1.27) –
它们只能工作,因为当前目录中没有任何'.sql'文件。 –
一个'.tar.gz'文件是压缩一个gzip连续的数据流。如果你想从中获取单个文件,你必须解压缩一切(你不能预先知道特定文件将在流中的位置) – knittl
该命令不会提取“只有1个.sql文件”...通配符在'tar'甚至开始之前被扩展,所以命令的结果高度依赖于当前目录中的内容。你最终可能会运行'tar xzvf foo.gz test.tar.gz blah.gz really_goofy.tar.cpio.gz test.sql blah.sql foo.sql goober.sql' - 这可能不是你想要的。 。 – twalberg