Cara ekstrak file ke direktori lain dengan menggunakan 'tar' perintah?

Saya pikir arsip tar.tar /pengguna/mylocation akan bekerja, tapi itu doesn't. Bagaimana saya bisa melakukan itu?

Mengomentari pertanyaan (3)
Larutan

Untuk mengekstrak arsip ke direktori yang berbeda dari saat ini, gunakan -C, atau --directory, tar pilihan, seperti dalam

tar -xf archive.tar -C /target/directory

Perhatikan bahwa target direktori yang telah ada sebelum menjalankan perintah tersebut (hal ini dapat dibuat dengan mkdir /target/direktori).

Membaca halaman (perintah: man tar) untuk pilihan lain.

Komentar (8)

Perhatikan bahwa jika anda tarball sudah berisi nama direktori yang ingin anda ubah, tambahkan --strip-komponen=1 pilihan:

tar xf archive.tar -C /target/directory --strip-components=1
Komentar (3)

Menggabungkan sebelumnya jawaban dan komentar:

Hanya ekstrak isinya dan membuat target direktori jika hilang:

mkdir -p /target/directory && tar xf archive.tar -C /target/directory

Untuk mengekstrak dan juga menghapus akar(tingkat pertama) direktori dalam zip

mkdir -p /target/directory && tar xf archive.tar -C /target/directory --strip-components=1
Komentar (0)

Pilihan lain adalah dengan menggunakan-satu-puncak-tingkat. Ini akan secara otomatis membuat direktori berdasarkan nama file asli.

tar zxvf filename.tgz --one-top-level

Selain itu jika anda ingin, anda dapat menentukan sendiri dan tar akan membuat secara otomatis.

tar zxvf filename.tgz --one-top-level=new_directory
Komentar (2)

Apa yang saya temukan menarik dalam kaitannya dengan ekstraksi adalah, bahwa hal itu tergantung bagaimana anda menciptakan arsip, lihat contoh ini

cd /tmp
mkdir folder
touch folder/file.txt

ketika anda melakukan tar -zcvf folder.tar.gz folder semuanya seperti yang diharapkan = ketika anda untar itu sekarang akan untarred (folder akan membuat, jika anda dihapus) sebagai /tmp/folder/.

Tapi, ketika anda akan membuat tar sebagai tar -zcvf tmp-folder.tar.gz /tmp/folder dan anda untar itu di folder /tmp, hasilnya akan menjadi /tmp/tmp/folder direktori ! Dalam kasus seperti itu anda harus untar ke / - tar -xf tmp-folder.tar.gz -C /

Komentar (0)

Dengan tar 1.29, kita hanya bisa menambahkan direktori nama setelah nama file tar. Misalnya,

tar zxvf tar-file directory-name/
Komentar (0)