Unzip eller Unrar mange filer samtidig i Linux
Hvis du har en katalog med dusinvis av zip-filer eller rar'd-filer, kan du kjøre en enkelt kommando for å pakke dem ut i ett trinn, takket være kraften til bash-skallet.
For denne oppgaven bruker vi bashs for loop kommandostruktur. Erstatt med et variabelt navn, og med enten en kommando som gir ut en liste eller en eksplisitt liste.
for i
gjøre
kommando $;
ferdig
Du kan kjøre den på en enkelt linje med denne syntaksen i stedet:
for inn; gjør kommando $; ferdig
Så hvis du vil unrar en liste over filer, kan du bruke denne kommandoen. Du trenger ikke nødvendigvis anførselstegnene, men det hjelper når filnavnene har mellomrom eller noe sånt i dem.
for f i * .rar; gjør unrar e "$ f"; ferdig
Hvis du vil bruke 7zip til å trekke ut en liste over filer:
for f i * .001; gjør 7z e "$ f"; ferdig
Eller hvis du vil pakke ut en liste over filer:
for f i * .zip; gjør unzip "$ f"; ferdig
Du kan til og med kjede kommandoer sammen hvis du vil. For eksempel, hvis alle zip-filene dine inneholdt .txt-filer, og du ønsket å pakke dem ut og deretter flytte utpakket filene til en annen katalog:
for f i * .zip; gjør unzip "$ f"; ferdig; for f i * .txt; gjør mv "$ f" / myfolder /; ferdig
Den bash shell er bare så utrolig kraftig ... dette tapper ikke kraften, men det bør gi deg en god ide om hva som er mulig.