GNU/Linux >> Linux Esercitazione >  >> Linux

Crea una cartella dedicata per ogni file zip in una directory ed estrai i file zip

unzip file.zip -d xxx estrarrà i file nella directory xxx e xxx verrà creato se non è presente. Puoi controllare la pagina man per i dettagli.

La riga awk qui sotto dovrebbe fare il lavoro:

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

Guarda il test sotto,

nota che ho rimosso |sh alla fine, visto che le mie zip sono archivi falsi; Voglio solo mostrare qui la riga di comando generata.

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

"estrai qui" è semplicemente una caratteristica di qualunque unzip involucro che stai utilizzando. unzip estrarrà solo ciò che è effettivamente nell'archivio. Probabilmente non esiste un modo più semplice di uno script di shell. Ma sed , awk ecc. non sono necessari per questo se hai una shell conforme a POSIX:

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

(NON DEVI sfuggire al * o l'espansione del percorso non avrà luogo.) Tieni presente che se l'archivio ZIP contiene una directory, come con gli archivi Eclipse (che contengono sempre eclipse/ ), ti ritroveresti con ./eclipse*/eclipse/eclipse.ini in ogni caso. Aggiungi echo prima di unzip per una corsa a secco.


p7zip , la versione a riga di comando di 7zip fa il lavoro

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

Su debian e ubuntu, devi installare p7zip-full .


Linux
  1. Per modificare l'autorizzazione per directory e file

  2. Come creare più zip da una directory contenente un milione di file XML?

  3. Passare in rassegna una cartella ed elencare i file?

  4. Come comprimere/decomprimere file/cartelle su Centos?

  5. Decomprimere tutti i file in una directory

Come comprimere e decomprimere file su Ubuntu

Come estrarre file in una cartella particolare in Linux

Come comprimere file e cartelle in Linux [Suggerimento per principianti]

Compressione e archiviazione di file e directory

Come comprimere file e cartelle in Linux

Linux / Cartella e cartella /root