Kenapa semua downvotes? Ada lebih banyak pilihan daripada hanya -C (dan mungkin versinya tidak menyediakan ini).
Alfe
2
Stack Overflow adalah situs untuk pertanyaan pemrograman dan pengembangan. Pertanyaan ini tampaknya di luar topik karena ini bukan tentang pemrograman atau pengembangan. Lihat Topik apa yang bisa saya tanyakan di sini di Pusat Bantuan. Mungkin Super User atau Unix & Linux Stack Exchange akan menjadi tempat yang lebih baik untuk bertanya.
jww
@jww Sementara saya melihat poin Anda, kami juga memiliki tag bernama tardan gzsekitar di forum ini . Mengekstrak tarball ke direktori tertentu bisa menjadi bagian dari skrip shell dan dengan demikian bagian dari pemrograman. Saya kira pertanyaan semacam ini bisa ditanyakan di kedua forum itu.
Alfe
Jawaban:
319
Anda dapat menggunakan opsi -C(atau --directoryjika Anda lebih suka opsi panjang) untuk memberikan direktori target pilihan Anda jika Anda menggunakan versi Gnu tar. Direktori harus ada:
mkdir foo
tar -xzf bar.tar.gz -C foo
Jika Anda tidak menggunakan tarkemampuan mengekstraksi ke direktori tertentu, Anda bisa cdmasuk ke direktori target Anda sebelum menelepon tar; maka Anda harus memberikan jalur lengkap ke arsip Anda, tentu saja. Anda dapat melakukan ini dalam subkelas pelingkupan untuk menghindari memengaruhi skrip di sekitarnya:
mkdir foo
(cd foo; tar -xzf ../bar.tar.gz) # instead of ../ you can use an absolute path as well
Atau, jika jalur absolut atau jalur relatif ke file arsip tidak cocok, Anda juga dapat menggunakan ini untuk memberi nama arsip di luar subkelas pelingkupan:
Anda dapat menggunakan untuk loop untuk membatalkan beberapa file .tar.gz ke folder lain. Kode berikut akan mengambil / destination / folder / path sebagai argumen ke skrip dan menghapus semua file .tar.gz yang ada di lokasi saat ini di / destination / folder / path.
if [ $# -ne 1 ];
then
echo "invalid argument/s"
echo "Usage: ./script-file-name.sh /target/directory"
exit 0
fi
for file in *.tar.gz
do
tar -zxvf "$file" --directory $1
done
tar
dangz
sekitar di forum ini . Mengekstrak tarball ke direktori tertentu bisa menjadi bagian dari skrip shell dan dengan demikian bagian dari pemrograman. Saya kira pertanyaan semacam ini bisa ditanyakan di kedua forum itu.Jawaban:
Anda dapat menggunakan opsi
-C
(atau--directory
jika Anda lebih suka opsi panjang) untuk memberikan direktori target pilihan Anda jika Anda menggunakan versi Gnutar
. Direktori harus ada:Jika Anda tidak menggunakan
tar
kemampuan mengekstraksi ke direktori tertentu, Anda bisacd
masuk ke direktori target Anda sebelum menelepontar
; maka Anda harus memberikan jalur lengkap ke arsip Anda, tentu saja. Anda dapat melakukan ini dalam subkelas pelingkupan untuk menghindari memengaruhi skrip di sekitarnya:Atau, jika jalur absolut atau jalur relatif ke file arsip tidak cocok, Anda juga dapat menggunakan ini untuk memberi nama arsip di luar subkelas pelingkupan:
sumber
atau, dengan tar GNU
sumber
gzip
seandainya tar tidak mengerti arsip zip.Ekstrak myArchive.tar ke / destinationDirectory
Perintah:
sumber
Anda dapat menggunakan untuk loop untuk membatalkan beberapa file .tar.gz ke folder lain. Kode berikut akan mengambil / destination / folder / path sebagai argumen ke skrip dan menghapus semua file .tar.gz yang ada di lokasi saat ini di / destination / folder / path.
sumber