GNU/Linux >> Tutoriels Linux >  >> Linux

Créez un dossier dédié pour chaque fichier zip dans un répertoire et extrayez les fichiers zip

unzip file.zip -d xxx extraira les fichiers dans le répertoire xxx, et xxx sera créé s'il n'y est pas. Vous pouvez consulter la page de manuel pour plus de détails.

La ligne awk ci-dessous devrait faire l'affaire :

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

Voir le test ci-dessous,

remarque que j'ai supprimé |sh à la fin, puisque mes zips sont de fausses archives; Je veux juste montrer la ligne de commande générée ici.

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

"extraire ici" est simplement une caractéristique de n'importe quel unzip enveloppe que vous utilisez. unzip n'extrairea que ce qui se trouve réellement dans l'archive. Il n'y a probablement pas de moyen plus simple qu'un script shell. Mais sed , awk etc. ne sont pas nécessaires pour cela si vous avez un shell compatible POSIX :

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

(Vous NE DEVEZ PAS échapper le * ou l'expansion du nom de chemin n'aura pas lieu.) Sachez que si l'archive ZIP contient un répertoire, comme avec les archives Eclipse (qui contiennent toujours eclipse/ ), vous vous retrouveriez avec ./eclipse*/eclipse/eclipse.ini dans tous les cas. Ajouter echo avant unzip pour un essai.


p7zip , la version en ligne de commande de 7zip fait le travail

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

Sur debian et ubuntu, vous devez installer p7zip-full .


Linux
  1. Créer une archive Tar d'un répertoire, à l'exception des fichiers cachés ?

  2. Comment créer plusieurs zips à partir d'un répertoire contenant un million de fichiers XML ?

  3. Boucler dans un dossier et lister les fichiers ?

  4. Comment compresser/décompresser des fichiers/dossiers sur Centos ?

  5. Travailler avec des fichiers ZIP sous Linux

Comment compresser et décompresser des fichiers sur Ubuntu

Comment extraire des fichiers dans un dossier particulier sous Linux

Comment compresser des fichiers et des dossiers sous Linux [Astuce pour débutant]

Compresser et archiver des fichiers et des répertoires

Comment compresser des fichiers et des dossiers sous Linux

Linux / Dossier et dossier /racine