Saya pikir arsip tar.tar /pengguna/mylocation
akan bekerja, tapi itu doesn't. Bagaimana saya bisa melakukan itu?
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.
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
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
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 /