Bagaimana cara membuat arsip tar di direktori yang berbeda?

39

Saya ingin membuat arsip tar di direktori yang berbeda daripada direktori saat ini.

Saya mencoba perintah ini:

tar czf file.tar.gz file1 -C /var/www/

tetapi itu menciptakan arsip di direktori saat ini. Mengapa?

Omid
sumber
3
Anda tampaknya telah salah mengerti arti -C(yang tidak aneh seperti yang didokumentasikan secara samar-samar). Untuk detailnya lihat serverfault.com/q/416002/86283 .
NN

Jawaban:

48

Cara mudah, jika Anda tidak perlu menggunakan -Cuntuk memberitahu taruntuk mengubah ke beberapa direktori lain, adalah cukup menentukan path lengkap ke arsip pada baris perintah. Kemudian Anda bisa berada di direktori apa pun yang Anda inginkan untuk membuat struktur direktori yang Anda inginkan di dalam arsip.

Berikut ini akan membuat arsip /var/www/file.tar.gzdan dimasukkan file1dari direktori saat ini (apa pun yang terjadi) di dalamnya, tanpa informasi jalur dalam arsip.

tar czf /var/www/file.tar.gz file1

Path (ke arsip, file konstituen, atau keduanya) tentu saja juga bisa relatif. Jika file1ada /tmp, Anda berada di /var/spooldan ingin membuat arsip /var/www, Anda dapat menggunakan sesuatu seperti:

tar czf ../www/file1.tar.gz /tmp/file1

Ada jutaan variasi pada tema, tetapi ini harus Anda mulai. Tambahkan vbendera jika Anda ingin melihat apa yang tarsebenarnya dilakukan.

sebuah CVn
sumber
1
Anda juga bisa menggunakan jalur relatif.
NN
@NN Tentu saja, tetapi karena kita tidak tahu apa $PWDitu, tampaknya paling aman untuk menggunakan jalur absolut dalam contoh ini.
CVn
Memang, saya hanya berpikir masuk akal untuk memasukkan itu untuk menunjukkan bahwa itu adalah pilihan yang tersedia untuk memecahkan masalah.
NN
Dengan begitu, jalur file1dalam arsip tar akan /tmp. Ini mungkin atau mungkin bukan yang Anda harapkan.
mouviciel
8

Saya mengubah data terkompresi menjadi aliran (-) dan dengan mudah mengubah nama dan menemukan (>) di mana pun saya pilih (Juga saya selalu tar jalur relatif (./) sehingga lebih mudah untuk ditangani ketika membuka kompresi)

tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
David King
sumber
Itu tidak membantu dengan file individual, dan -Cjauh lebih idiomatis (dan lebih pendek).
Mahmoud Al-Qudsi
3

Saya pikir, seharusnya:
tar czf file.tar.gz -C /var/www/ file1

Yang berhasil buat saya. Ia memberitahu untuk mengubah direktori dan kemudian pilih file.

pengguna2039152
sumber
-2

Bekerja dengan sempurna

cd /home; tar -czvf - /var/log/* > varlog.tar.gz
Myhera
sumber