Hjemmeside » hvordan » Shell Geek Omdøb flere filer på en gang

    Shell Geek Omdøb flere filer på en gang

    Lad os sige, at du har et bibliotek med hundredvis af filer med de forkerte filnavne, og du vil gerne erstatte hvert filnavn, der indeholder prøve med prod. (dette er et udpræget eksempel). Vi kan nemt gøre dette med "for" kommandoen i bash, kombineret med en lille smule bash godhed. I dag lærer vi at erstatte tekst i en variabel i en for loop.

    Kommandoen "for" virker som denne:

    for var i; gør $ var; gjort

    Du kan erstatte med ethvert filmatchemønster, f.eks. * eller * .txt, og du kan erstatte med enhver Linux-kommando. Kommandoen vil blive kørt i rækkefølge på hver af de filer, der matches af filmatchemønsteret.

    Det er her, hvor bash-variabel håndtering gør det endnu mere interessant. I stedet for bare at gøre noget som "mv $ var", kan vi erstatte tekst i filnavnet ved hjælp af denne syntaks:

    $ Var / Originaltext / replacetext

    Så nu, hvis vi kører denne kommando på vores bibliotek:

    for f i *; gør mv $ f $ f / test / prod; færdig

    For hver fil, der matches med *, vil bash udføre en kommando, der ligner dette:

    mv test.config prod.config

    Jeg har fundet ud af at kendskabet til skallen er uvurderlig, når du administrerer servere eller bare for at styre din filsamling, og har sparet mig timer af hvad der ellers ville være manuelt arbejde.

    Og ja, jeg er klar over, at der er en række værktøjer, der kan udføre omdøbning af flere filer.