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.

Seetha Raman
sumber
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).

Yakub Vlijm
sumber
4
Titik di akhir perintah kedua Anda akan menyertakan semua file dalam direktori saat ini ...
David Duncan