[Mac/Linux] 指定 tar 只解出檔案,不解出目錄結構

[Mac/Linux] 指定 tar 只解出檔案,不解出目錄結構

平常用 unzip 在解 zip 檔時,加上 -j 選項就可以忽略原本的目錄階層,

只把檔案解出來,但是 tar 的話就一直不曉得要怎麼做…

 

今天又遇到了需要忽略 tar 檔裡的目錄結構的狀況,

查了一下,原來是有方法的~

其實就只要加上 –strip-components 就行囉~

 

例如,假設原本直接解壓縮,會解出 bin 和 lib 兩個目錄,兩個目錄下分別有幾個檔案:

testuser@localhost ~ $ tar -zxvf data.tar.gz
x bin/
x bin/Pineup.raw
x bin/Pineup
x bin/Pineup.sh
x bin/Pineup.symbol
x lib/
x lib/libwebkit.so
x lib/libsorting.so
x lib/libwebkit.so.raw
x lib/libwebkit.so.symbol
x lib/libsorting.so.raw
x lib/libsorting.so.symbol

 

加上 –strip-components 的話,就不會解出 bin 和 lib 目錄,

檔案直接解壓縮在目前目錄下了~

–strip-components 後面的數字代表要跳過幾層目錄 (本例中是跳掉一層),

因此也可以直接設一個大一點的數字 (像 99),就把所有的目錄都去掉了:

testuser@localhost ~ $ tar -zxvf data.tar.gz --strip-components 1
x Pineup.raw
x Pineup
x Pineup.sh
x Pineup.symbol
x libwebkit.so
x libsorting.so
x libwebkit.so.raw
x libwebkit.so.symbol
x libsorting.so.raw
x libsorting.so.symbol

 

參考資料:stackoverflow: How do I extract files without folder structure using tar

(本頁面已被瀏覽過 425 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料