Ketika saya melakukan hal berikut:
tar czvf ../myarchive.tar.gz ./
Saya mendapatkan satu folder root (mengganggu) di arsip tar saya:
Bagaimana cara menghapus periode mengerikan ini saat membuat arsip?
Ketika saya melakukan hal berikut:
tar czvf ../myarchive.tar.gz ./
Saya mendapatkan satu folder root (mengganggu) di arsip tar saya:
Bagaimana cara menghapus periode mengerikan ini saat membuat arsip?
Jawaban:
Kamu tidak.
name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"
(Catatan: ini tidak berfungsi jika shell Anda memiliki pelacakan tautan simbolik direktori aktif dan direktori saat ini diakses melalui tautan simbolik.)
Ya, ini bukan yang Anda minta, tapi ini yang harus Anda lakukan. Arsip yang memperluas banyak file di direktori saat ini menjengkelkan: itu membuat beban membuat direktori target untuk file pada setiap orang yang membongkar arsip, dan jika mereka secara tidak sengaja membukanya di direktori yang tidak kosong, sulit untuk membersihkan. Sebagian besar waktu, arsip harus membuat direktori tingkat atas tunggal yang namanya adalah nama dasar arsip.
tar xzvf archive.tar.gz && mv archive/* /output
vs unzip archive.zip -d /output
)
Titik muncul karena tar
menciptakan struktur jalur seperti yang Anda berikan dalam argumen. Jadi seperti yang Anda berikan . sebagai sumber, arsip juga dibuat dalam struktur yang sama.
Anda dapat mencoba ini dan periksa:
tar -czvf ../myarchive.tar.gz *
Memperbarui jawaban dengan bantuan dari komentar oleh n.st
tar --xform s:'./':: -czvf ../myarchive.tar.gz ./
*
gumpal tidak akan cocok file yang tersembunyi.
lebih baik tambahkan ^ sebelum sebelumnya.
tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./
ATAU, semua "/" dalam pathname lengkap di dalam arsip akan dihapus kecuali "/" adalah akhir dari pathname lengkap.