[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
(本頁面已被瀏覽過 1,362 次)