Hjemmeside » hvordan » Unzip eller Unrar mange filer på en gang i Linux

    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.