GNU/Linux >> Belajar Linux >  >> Linux

Perintah Untuk Membuat Zip Banyak Direktori Menjadi File Zip Individual?

Saya memiliki satu direktori yang berisi lusinan direktori di dalamnya.

Saya baru mengenal baris perintah dan saya kesulitan membuat perintah yang akan meng-zip setiap sub-direktori menjadi file sub-direktori.zip yang unik.

Jadi pada akhirnya direktori utama saya akan diisi dengan semua sub-direktori asli saya, ditambah .zip yang sesuai file yang berisi konten zip setiap sub-direktori.

Apakah hal seperti ini mungkin? Jika ya, tunjukkan cara melakukannya.

Jawaban yang Diterima:

Anda dapat menggunakan loop ini di bash :

for i in */; do zip -r "${i%/}.zip" "$i"; done

i adalah nama variabel loop. */ berarti setiap subdirektori dari direktori saat ini, dan akan menyertakan garis miring di nama-nama itu. Pastikan Anda cd ke tempat yang tepat sebelum menjalankan ini. "$i" cukup beri nama direktori itu, termasuk trailing slash. Tanda kutip memastikan bahwa spasi dalam nama direktori tidak akan menyebabkan masalah. ${i%/} seperti $i tetapi dengan menghilangkan garis miring, Anda dapat menggunakannya untuk membuat nama file zip.

Jika Anda ingin melihat cara kerjanya, sertakan echo sebelum zip dan Anda akan melihat perintah dicetak alih-alih dieksekusi.

Eksekusi paralel

Untuk menjalankannya secara paralel, Anda dapat menggunakan & :

for i in */; do zip -0 -r "${i%/}.zip" "$i" & done; wait

Kami menggunakan wait untuk memberi tahu shell agar menunggu semua tugas latar belakang selesai sebelum keluar.

Berhati-hatilah bahwa jika Anda memiliki terlalu banyak folder di direktori Anda saat ini, Anda dapat membebani komputer Anda karena kode ini tidak membatasi jumlah tugas paralel.


Linux
  1. Bagaimana Cara Membuat Beberapa Zip Dari Direktori yang Berisi Jutaan File Xml?

  2. cp hanya file, melewatkan direktori

  3. Memecah gambar dd menjadi beberapa file

  1. Salin file &direktori di Linux

  2. Cara Membuat Zip Banyak File di Linux

  3. Shell Script:Menyortir File Ke Direktori Dan Subdirektori?

  1. Unzip Semua File Di Direktori

  2. Jumlah maksimum file/direktori di Linux?

  3. Linux Bash:Pindahkan banyak file berbeda ke direktori yang sama