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 -Cdan --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 -Cbendera mengasumsikan direktori sudah di tempat sehingga isi dari file tar dapat diperluas ke dalamnya. karenanya mkdir FOLDER.
The --strip-componentsflag digunakan ketika sebuah file tar secara alami akan memperluas dirinya menjadi sebuah folder, biarkan katakanlah, seperti github mana contoh untuk repo-name-masterfolder. Tentu saja Anda tidak memerlukan folder level pertama yang dibuat di sini, jadi --strip-componentssetel 1akan secara otomatis menghapus folder pertama itu untuk Anda. Semakin besar angkanya, semakin banyak folder bersarang yang dihapus.
Anda juga dapat menggunakan --transformopsi 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