Unzip of Unrar veel bestanden tegelijk in Linux
Als je een map hebt met tientallen gecomprimeerde of rar'd-bestanden, kun je een enkele opdracht uitvoeren om ze allemaal in één stap uit te pakken, dankzij de kracht van de bash-shell.
Voor deze taak gebruiken we bash's voor loop-opdrachtstructuur. Vervang door een variabelenaam en met een opdracht die een lijst of een expliciete lijst uitvoert.
voor in
do
commando $;
gedaan
U kunt het in plaats daarvan op één regel uitvoeren met deze syntaxis:
voor in; voer $ uit, klaar
Dus als u een lijst met bestanden wilt verwijderen, kunt u deze opdracht gebruiken. U hebt niet noodzakelijk de aanhalingstekens nodig, maar het helpt wanneer de bestandsnamen spaties of iets dergelijks bevatten.
voor f in * .rar; doe dit niet "$ f"; klaar
Als je 7zip wilde gebruiken om een lijst met bestanden uit te pakken:
voor f in * .001; doe 7z e "$ f"; klaar
Of als u een lijst met bestanden wilt unzippen:
voor f in * .zip; unzip "$ f"; klaar
Je zou zelfs commando's samen kunnen ketenen als je dat wilde. Bijvoorbeeld, als al uw zip-bestanden txt-bestanden bevatten en u deze wilde unzippen en de uitgepakte bestanden naar een andere map verplaatsen:
voor f in * .zip; unzip "$ f"; done; voor f in * .txt; doe mv "$ f" / myfolder /; klaar
De bash-shell is gewoon zo ongelooflijk krachtig ... dit tikt niet eens de kracht aan, maar het zou je een goed idee moeten geven van wat mogelijk is.