Startpagina » hoe » Unzip of Unrar veel bestanden tegelijk in Linux

    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.