GNU/Linux >> Belajar Linux >  >> Linux

Buat folder khusus untuk setiap file zip di direktori dan ekstrak file zip

unzip file.zip -d xxx akan mengekstrak file ke direktori xxx, dan xxx akan dibuat jika tidak ada. Anda dapat memeriksa halaman manual untuk detailnya.

Baris awk di bawah ini harusnya berfungsi:

ls *.zip|awk -F'.zip' '{print "unzip "$0" -d "$1}'|sh

Lihat ujian di bawah,

catatan bahwa saya menghapus |sh pada akhirnya, karena ritsleting saya adalah arsip palsu; Saya hanya ingin menunjukkan baris perintah yang dihasilkan di sini.

kent$  ls -l
total 0
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 001.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 002.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 003.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 004.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 005.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 006.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 007.zip

kent$  ls *.zip|awk -F'.zip' '{print "unzip "$0" -d "$1}'
unzip 001.zip -d 001
unzip 002.zip -d 002
unzip 003.zip -d 003
unzip 004.zip -d 004
unzip 005.zip -d 005
unzip 006.zip -d 006
unzip 007.zip -d 007

"ekstrak di sini" hanyalah fitur dari unzip apa pun pembungkus yang Anda gunakan. unzip hanya akan mengekstrak apa yang sebenarnya ada di arsip. Mungkin tidak ada cara yang lebih sederhana daripada skrip shell. Tapi sed , awk dll. tidak diperlukan untuk ini jika Anda memiliki shell yang sesuai dengan POSIX:

for f in *.zip; do unzip -d "${f%*.zip}" "$f"; done

(Anda TIDAK HARUS melarikan diri dari * atau perluasan pathname tidak akan terjadi.) Ketahuilah bahwa jika arsip ZIP berisi direktori, seperti arsip Eclipse (yang selalu berisi eclipse/ ), Anda akan mendapatkan ./eclipse*/eclipse/eclipse.ini dalam hal apapun. Tambahkan echo sebelum unzip untuk lari kering.


p7zip , versi baris perintah 7zip melakukan tugasnya

7z x '*.zip' -o'*'

Di debian dan ubuntu, Anda harus menginstal p7zip-full .


Linux
  1. Buat Arsip Tar Dari Direktori, Kecuali Untuk File Tersembunyi?

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

  3. Bekerja dengan file ZIP di Linux

  1. Bagaimana cara zip/unzip file/folder di Centos?

  2. Unzip Semua File Di Direktori

  3. Buat file zip dan abaikan struktur direktori

  1. Untuk mengubah izin untuk direktori dan file

  2. Loop Melalui Folder Dan Daftar File?

  3. Buat dan ekstrak file tar.gz dan tar.bz2 di ubuntu linux