GNU tar(1)
memiliki opsi yang disebut rapi --transform
. Dari halaman manual:
--transform, --xform EXPRESSION
gunakan dan ganti EXPRESSION untuk mengubah nama file
Ini memungkinkan transformasi nama jalur dengan cepat saat arsip diekstraksi sehingga Anda dapat mengontrol di mana dan bagaimana itu akan diekstraksi.
Pertanyaan saya adalah, adakah cara untuk melakukan transformasi serupa di situ ; yaitu, tanpa mengekstraksi arsip?
Contoh
[user@host]$ tar tf test.tar
./foo/blah ./foo/bleh
[user@host]$ some_deep_magic 's/foo/bar/' test.tar
[user@host]$ tar tf test.tar
./bar/blah ./bar/bleh
Gunakan kasing
Saya mendistribusikan tar
arsip pada dasarnya pengguna yang tidak mengerti dan ingin mengekstraknya ke jalur yang benar tanpa gangguan dari saya. Saya mencoba untuk menghindari solusi sepele dari mengekstraksi arsip, mengganti nama direktori dan mengemas ulang karena arsip lebih besar.
Jawaban:
Anda bisa memasang arsip dengan archivemount atau mountavfs dan membuatnya kembali
operasi tulis pada sistem file arsip akan menampilkan penulisan ulang penuh pada umount, jadi sepertinya bukan pilihan yang baik untuk file besar.
EDIT
Saya tidak tahu detail implementasi tetapi sepertinya kami menyimpan file tulis ke langkah filesystem.
Cukup uji untuk menyelesaikan dudes, (di atas tar saya / usr)
Keluaran:
Jadi Avf menang! .
sumber