GNU/Linux >> Belajar Linux >  >> Linux

Cara gzip semua file di semua sub-direktori menjadi satu file terkompresi di bash

ada banyak metode kompresi yang bekerja secara rekursif baris perintah dan ada baiknya untuk mengetahui siapa audiens akhirnya.

yaitu jika itu akan dikirim ke seseorang yang menjalankan windows maka zip mungkin yang terbaik:

zip -r file.zip folder_to_zip

unzip filenname.zip

untuk pengguna linux lain atau tar diri Anda sangat bagus

tar -cvzf filename.tar.gz folder

tar -cvjf filename.tar.bz2 folder  # even more compression

#change the -c to -x to above to extract

Seseorang harus berhati-hati dengan tar dan bagaimana hal-hal di-tar/diekstraksi, misalnya jika saya menjalankan

cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd


pwd

/home/namapenggunaku

tar -xvzf passwd.tar.gz

ini akan membuat/home/myusername/etc/passwd

tidak yakin apakah semua versi tar melakukan ini:

 Removing leading `/' from member names

Posting @amitchhajer berfungsi untuk tar GNU. Jika seseorang menemukan postingan ini dan membutuhkannya untuk bekerja pada NON GNU sistem, mereka dapat melakukan ini:

tar cvf - folderToCompress | gzip > compressFileName

Untuk meluaskan arsip:

zcat compressFileName | tar xvf -

tar -zcvf compressFileName.tar.gz folderToCompress

semua yang ada di folderToCompress akan masuk ke compressFileName

Sunting:Setelah ulasan dan komentar saya menyadari bahwa orang mungkin bingung dengan compressFileName tanpa ekstensi. Jika mau, Anda dapat menggunakan ekstensi .tar.gz (seperti yang disarankan) dengan compressFileName


Linux
  1. Cara Melihat Isi File Terkompresi di Linux

  2. Cara mengekstrak file .gz dan .tar.gz di Linux

  3. Cara gzip semua atau file tertentu di Linux

  1. Bagaimana cara mengurutkan file ke dalam folder berdasarkan tipe file di bash (dengan perintah 'file')?

  2. Bagaimana cara tar jenis file tertentu di semua subdirektori?

  3. Bagaimana cara membagi satu file teks menjadi beberapa file *.txt?

  1. Cara mengatasi:stdin:tidak dalam format gzip

  2. Cara Menghapus Semua File Dalam Folder Kecuali Satu File Tertentu Di Linux

  3. Menggabungkan File Tertentu Menjadi Satu File Tunggal?