確切的文件我目前使用此命令提取存檔快速的方法來提取檔案
tar xzvf *.gz *.sql
它位於內名爲.tar.gz第一級只有1 .sql文件。像:
- archive.tar.gz
- bla.sql
- 文件夾
- ...
,但似乎這個命令掃描整個tar.gz的,它需要很長時間。
有沒有什麼快捷方式?有什麼建議麼?
確切的文件我目前使用此命令提取存檔快速的方法來提取檔案
tar xzvf *.gz *.sql
它位於內名爲.tar.gz第一級只有1 .sql文件。像:
,但似乎這個命令掃描整個tar.gz的,它需要很長時間。
有沒有什麼快捷方式?有什麼建議麼?
如果你想只bla.sql提取,只需添加文件的完整路徑(歸檔)參數:
tar xvf archive.tar.gz bla.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