Shell Geek: Endre navn på flere filer samtidig

Shell Geek: Endre navn på flere filer samtidig
Shell Geek: Endre navn på flere filer samtidig

Video: Shell Geek: Endre navn på flere filer samtidig

Video: Shell Geek: Endre navn på flere filer samtidig
Video: CMD : Send Files Over The Internet - YouTube 2024, November
Anonim

La oss si at du har en katalog med hundrevis av filer med feil filnavn, og du vil erstatte hvert filnavn som inneholder test med prod. (dette er et godt eksempel). Vi kan enkelt gjøre dette med "for" kommandoen i bash, kombinert med litt bash godhet. I dag lærer vi hvordan du erstatter tekst i en variabel i en forløkke.

Kommandoen "for" fungerer slik:

for var in ;do $var;done

Du kan erstatte med hvilket som helst filmatchemønster, som * eller *.txt, og du kan erstatte med hvilken som helst Linux-kommando. Kommandoen blir kjørt i rekkefølge på hver av filene som er matchet av filmatchemønsteret.

Dette er hvor bash-variabel håndtering gjør det enda mer interessant. I stedet for å bare gjøre noe som "mv $ var", kan vi erstatte tekst i filnavnet ved hjelp av dette syntaksen:

${var/originaltext/replacetext}

Så nå, hvis vi kjører denne kommandoen på katalogen vår:

for f in *;do mv $f ${f/test/prod};done

For hver fil som samsvarer med *, vil bash utføre en kommando som ligner på dette:

mv test.config prod.config

Jeg har funnet ut at kunnskap om skallet er uvurderlig når du administrerer servere eller bare for å administrere filsamlingen din, og har spart meg timer med hva som ellers ville vært manuelt.

Og ja, jeg skjønner at det finnes en rekke verktøy som kan oppnå omdøping av flere filer.

Anbefalt: