tar -tf filename.tar
folder1/file
folder1/name
[...]
Saya ingin mengekstrak file dan nama , folder2 . Apakah ini dapat dilakukan sebagai one-liner?
tar -tf filename.tar
folder1/file
folder1/name
[...]
Saya ingin mengekstrak file dan nama , folder2 . Apakah ini dapat dilakukan sebagai one-liner?
Jawaban:
Gunakan -C
dan --strip-components
(Lihat man tar
).
mkdir FOLDER
# for remote tar file
curl -L ’remote_tar_file' | tar -xz - -C FOLDER --strip-components=1
# for local tar file
tar -xzf FILENAME -C FOLDER --strip-components=1
The -C
bendera mengasumsikan direktori sudah di tempat sehingga isi dari file tar dapat diperluas ke dalamnya. karenanya mkdir FOLDER
.
The --strip-components
flag digunakan ketika sebuah file tar secara alami akan memperluas dirinya menjadi sebuah folder, biarkan katakanlah, seperti github mana contoh untuk repo-name-master
folder. Tentu saja Anda tidak memerlukan folder level pertama yang dibuat di sini, jadi --strip-components
setel 1
akan secara otomatis menghapus folder pertama itu untuk Anda. Semakin besar angkanya, semakin banyak folder bersarang yang dihapus.
Anda juga dapat menggunakan --transform
opsi ini untuk sedikit lebih fleksibel. Ia menerima operasi penggantian pengganti apa pun.
Sebagai contoh, ini adalah bagaimana saya mengekstrak tarbal Linux ke direktori baru sehingga saya bisa menerapkan tambalan:
tar -xjf linux-2.6.38.tar.bz2 --transform 's/linux-2.6.38/linux-2.6.38.1/'
man tar
. Tidak menemukan--strip-components
. bagus