GNU/Linux >> Znalost Linux >  >> Linux

Vytvořte vyhrazenou složku pro každý soubor zip v adresáři a extrahujte soubory zip

unzip file.zip -d xxx rozbalí soubory do adresáře xxx a xxx se vytvoří, pokud tam není. Podrobnosti najdete na manuálové stránce.

Řádek awk níže by měl fungovat:

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

Podívejte se na test níže,

poznámka že jsem odstranil |sh na konci, protože moje zipy jsou falešné archivy; Chci zde pouze ukázat vygenerovaný příkazový řádek.

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

"extract here" je pouze rysem čehokoli unzip obal, který používáte. unzip extrahuje pouze to, co skutečně je v archivu. Pravděpodobně neexistuje jednodušší způsob než shell skript. Ale sed , awk atd. nejsou k tomu potřeba, pokud máte shell kompatibilní s POSIX:

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

(NESMÍTE escapovat * nebo rozšíření názvu cesty neproběhne.) Uvědomte si, že pokud archiv ZIP obsahuje adresář, jako je tomu u archivů Eclipse (které vždy obsahují eclipse/ ), skončíte s ./eclipse*/eclipse/eclipse.ini v každém případě. Přidejte echo před unzip na sucho.


p7zip , verzi 7zip pro příkazový řádek to udělá

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

Na debian a ubuntu musíte nainstalovat p7zip-full .


Linux
  1. Vytvořit archiv Tar z adresáře, s výjimkou skrytých souborů?

  2. Jak vytvořit více zipů z adresáře obsahujícího milion souborů Xml?

  3. Procházet složku a vypisovat soubory?

  1. Jak zip/rozbalit soubory/složky na Centos?

  2. Rozbalte všechny soubory v adresáři

  3. jak mohu vyhledat soubory a zazipovat je do jednoho souboru zip

  1. Chcete-li změnit oprávnění pro adresář a soubory

  2. Vytvářejte a extrahujte soubory tar.gz a tar.bz2 na ubuntu linux

  3. Práce se soubory ZIP v Linuxu