Atau gunakan --transform/ --xform, seperti yang disarankan oleh Magnus :tar -cf /path/to/output.tar -C /path/to/input-directory . --xform='s!^\./!!'
n.st
Jawaban:
6
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.
Dimengerti Jika saya ingat benar, itu hanya benar-benar menjengkelkan harus melakukan langkah ekstra untuk untar sebuah arsip ke dalam direktori tertentu (misalnya tar xzvf archive.tar.gz && mv archive/* /outputvs unzip archive.zip -d /output)
Naftuli Kay
9
Titik muncul karena tarmenciptakan 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
--transform
/--xform
, seperti yang disarankan oleh Magnus :tar -cf /path/to/output.tar -C /path/to/input-directory . --xform='s!^\./!!'
Jawaban:
Kamu tidak.
(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.
sumber
tar xzvf archive.tar.gz && mv archive/* /output
vsunzip 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:
Memperbarui jawaban dengan bantuan dari komentar oleh n.st
sumber
*
gumpal tidak akan cocok file yang tersembunyi.lebih baik tambahkan ^ sebelum sebelumnya.
ATAU, semua "/" dalam pathname lengkap di dalam arsip akan dihapus kecuali "/" adalah akhir dari pathname lengkap.
sumber