Skip to main content

Unzip eller Unrar mange filer samtidig i Linux

Unzip eller Unrar mange filer samtidig i Linux

Geoffrey Carr

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 bash for loop kommandostruktur. Erstatte med et variabelt navn, og med enten en kommando som utgir en liste eller en eksplisitt liste.

for in do command $;done

Du kan kjøre den på en enkelt linje med denne syntaksen i stedet:

for in ;do command $;done

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 filnavnet har mellomrom eller noe sånt i dem.

for f in *.rar;do unrar e “$f”;done

Hvis du vil bruke 7zip til å trekke ut en liste over filer:

for f in *.001;do 7z e “$f”;done

Eller hvis du vil pakke ut en liste over filer:

for f in *.zip;do unzip “$f”;done

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 flytte de utpakket filene til en annen katalog:

for f in *.zip;do unzip “$f”;done; for f in *.txt;do mv “$f” /myfolder/;done

Den bash shell er bare så utrolig kraftig ... dette ikke engang trykke på strømmen, men det bør gi deg en god ide om hva som er mulig.

Link
Plus
Send
Send
Pin