Mengkompresi folder (tar) tanpa direktori yang mengandungnya dalam nama folder


21

Saya mencoba mengompres folder dengan tarperintah.

Ketika saya mencoba untuk mengompresnya, itu berfungsi dengan baik. Masalahnya dengan nama file.

Jalur sumber:

/data/file/

Jalur tujuan:

/data/repo/temp/file.tar.gz

tar zcvf $srcpath $destinationpath

Saya menjalankan perintah dari folder yang berbeda, dan saat mengekstraksi folder saya mendapatkan semua sub direktori alih-alih folder file saja.


1
sintaks tar adalah: tar zcvf file.tar.gz /path/dir/to/compressmungkin Anda harus mengubah perintah Anda tar zcvf $destinationpath $srcpathtetapi tidak jelas bagi saya apa yang Anda butuhkan. Bisakah Anda menguraikan pertanyaan Anda dengan contoh apa yang Anda harapkan dari perintah tar?
Lety

terima kasih atas komentarnya, masalah saya adalah mengikuti komentar yang Anda bagikan di sini "tar zcvf file.tar.gz / path / dir / ke / compres" ini akan berfungsi dengan baik jika kita berada di direktori yang sama "file" kasus saya adalah kami bekerja dari direktori yang berbeda, misalnya: / home / testuser1 / file: file adalah folder yang ingin saya kompres dan mengecualikan perintah dari root tidak di rumah sehingga kami mungkin perlu memberikan seluruh path ke folder, sambil memperluas Saya mendapatkan semua subdirektori dari / home / testuser1 / file alih-alih folder file
Seetha Raman

Mungkin salah ketik, tetapi dalam contoh Anda, Anda mencampur sumber dan tujuan.
Jacob Vlijm

Jawaban:


49

Cara termudah untuk melakukannya adalah dengan cd ke direktori terlebih dahulu:

cd /path/to/containing/folder && tar -zcvf tarfile.tar.gz foldername_tocompress

Sehingga direktori folder (berisi) menjadi direktori root dari file terkompresi Anda.

Sedikit lebih maju menggunakan opsi -C:

tar -zcvf tarfile.tar.gz -C /path/to/foldername_tocompress .

Ini menciptakan tar.gzfile di direktori saat ini (berfungsi), yang berisi semua file / folder di dalam foldername_tocompress(ingat titik, mengatakan semua file / folder harus dimasukkan).


4
Titik di akhir perintah kedua Anda akan menyertakan semua file dalam direktori saat ini ...
David Duncan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.