Unzip eller Unrar mange filer på en gang i Linux
Hvis du har en mappe med snesevis af zip-filer eller rar'd-filer, kan du køre en enkelt kommando for at pakke dem ud i ét trin takket være kraften i bash shell.
Til denne opgave bruger vi bash's for loop kommandostruktur. Udskift med et variabelt navn, og med enten en kommando, der udsender en liste eller en eksplicit liste.
til i
gøre
kommando $;
Færdig
Du kan køre det på en enkelt linje med denne syntaks i stedet:
for in; do command $; done
Så hvis du vil unrar en liste over filer, kan du bruge denne kommando. Du behøver ikke nødvendigvis citaterne, men det hjælper, når filnavnet har mellemrum eller noget lignende i dem.
for f i * .rar; do unrar e "$ f"; done
Hvis du ønskede at bruge 7zip til at udtrække en liste over filer:
for f i * .001; gør 7z e "$ f"; færdig
Eller hvis du ønskede at udpakke en liste over filer:
for f i * .zip; udpak "$ f"; færdig
Du kan endda kæde kommandoer sammen, hvis du ville. Hvis alle dine zip-filer f.eks. Indeholdt .txt-filer, og du ønskede at pakke dem ud og derefter flytte de udpakket filer til en anden mappe:
for f i * .zip; do unzip "$ f"; done; for f i * .txt; gør mv "$ f" / myfolder /; done
Den bash shell er bare så utroligt kraftfuld ... dette tapper ikke engang strømmen, men det skal give dig en god ide om hvad der er muligt.