Når du jobber med filer, er det å gi nytt navn til dem en av de mest grunnleggende handlingene. I Linux er det å gi nytt navn til en fil eller katalog for det meste gjort ved hjelp av MV. Når det gjelder å gi nytt navn til flere filer eller mapper, blir imidlertid MV kompleks. Det krever konstruksjon av komplekse løkker og rør for å få jobben gjort. Rename -kommandoen er spesielt designet for slike situasjoner.
Rename er et kraftig batchenkingsverktøy som bruker Perl -uttrykk for å gi nytt navn til flere filer og kataloger i en enkelt kommando. I denne guiden, sjekk ut hvordan du vil gi nytt navn med nytt navn.
Installere gi nytt navn
Rename-kommandoen kommer ikke forhåndsinstallert. Heldigvis kan vi installere det fra de offisielle pakkeserverne til hvilken som helst Linux -distro.
Det er to versjoner av verktøy, hver med sin egen syntaks og funksjon. For denne guiden vil vi fokusere på den som bruker Perl.
Når det. Installer pakken.
$ sudo apt oppdatering
$ sudo apt installer nytt navn
Når det gjelder centos og fedora, er pakketavnet annerledes. Det er kjent som "prename". Installer pakken.
$ sudo yum installer prename
Når det. Installer pakken.
$ sudo pacman -s perl -ramme
Bruker nytt navn
La oss se på forskjellige måter å bruke Rename -kommandoen.
Grunnleggende kommandostruktur
Verktøyet følger følgende kommandostruktur:
$ gi nytt navn
Rename -kommandoen er faktisk et Perl -skript. Det fungerer ved bruk av Perl -uttrykket. Som du kan gjette, krever det å bruke det fullt ut kompetanse i Perl vanlige uttrykk.
Selv om det er mange måter å konstruere Perl -uttrykket på, er følgende uttrykk ganske vanlig å komme over når du jobber med Rename -kommandoen.
$ S// /
Grunnleggende bruk
Her har jeg en haug med dummy -filer som er klare til å bli omdøpt.
Følgende RENAME -kommandoen vil gi nytt navn til alle filutvidelsene fra TXT til tekst.
$ gi navn 's/.tekst/.tekst/' *.tekst
Her uttrykkes målfilene for å gi nytt navn til å bruke jokertegn (*) symbolet.
Verbose -modus
Som standard skriver ikke nytt navn mye utdata. Å ha mer dyptgående detaljer om sine handlinger kan imidlertid hjelpe i forskjellige scenarier, spesielt når det gjelder feilsøking. I Verbose -modus, gi nytt navn til utskrifter mer informasjon om den pågående oppgaven for å bedre forstå og identifisere mulige problemer.
For å kjøre nytt navn i ordentlig modus, legg til "-v" -flagget.
$ gi nytt navn -v 's/.tekst/.tekst/' *.tekst
Tørr løp
Når du kjører nytt navn, blir endringene permanente. I mange situasjoner vil det føre til unødvendige problemer. For å forhindre uønskede endringer i fil- og mappenavn, kan vi teste kommandoen ved hjelp av en tørr kjøring.
Et tørt løp er i utgangspunktet en testkjøring som ikke endrer noe med de faktiske filene og mappene. Å bruke Verbose -modus vil imidlertid skrive ut utdataene som om kommandoen faktisk ble utført. Det er derfor det alltid er en god idé å tørke løp med verbosemodus. Det anbefales å utføre et tørt løp før du kjører noen omgangskommando på viktige filer og mapper.
For å utføre et tørt løp, legg til “-N” -flagget.
$ gi nytt navn -v -n 's/.tekst/.tekst/' *.tekst
Overskriver eksisterende filer
Standard oppførsel for å gi nytt navn er ikke å overskrive de allerede eksisterende filene. Hvis du ikke frykter å overskrive de eksisterende, kan du tvinge nytt navn til å overskrive ved hjelp av "-f" -flagget.
$ gi nytt navn -v -f 's/.tekst/.tekst/' *.tekst
Eksempel på nytt navn
Grunnstrukturen i Rename -kommandoen er veldig enkel. Hovedkraften er inkorporering av perl vanlige uttrykk. Regelmessig uttrykk er en smart måte å beskrive et mønster og spesifisere handlingene. For nybegynnere, her er en guide om vanlig uttrykk ved hjelp av GREP og EGREP. Selv om det fortsatt gjelder forskjellige verktøy, gjelder grunnleggende uttrykk for regelmessig uttrykk.
Her er en kortliste over noen vanlige nytt navn til Perl -uttrykk. Merk at disse bare er for referanse. Før du tar dem i bruk, må du alltid utføre et tørt løp for å sikre at det fungerer som tiltenkt.
Erstatte mellomrom
Følgende uttrykk vil erstatte mellomrom i filnavn med understreking.
$ 'y//_/'
Konvertere filnavn til store bokstaver
Trenger filnavnene i store bokstaver? Følgende Perl -uttrykk kombinert med Rename -kommandoen vil gjøre nettopp det.
$ 'y/a-z/a-z/'
Konvertere filnavn til små bokstaver
Følgende Perl -uttrykk, når det brukes med nytt navn, vil gi nytt navn til filnavnene fra store bokstaver til små bokstaver.
$ 'y/a-z/a-z/'
Fjerne deler av filnavnene
Hvis filnavn inneholder unødvendig innhold, kan vi alltid fjerne dem ved hjelp av Perl -uttrykk. For eksempel for å gi nytt navn til sikkerhetskopieringsfiler (.bak) til de originale filene, kan vi ganske enkelt fjerne ".Bak ”-delen fra filnavnet.
$ 's/\ bak $ //'
Omdøpe flere matchende mønstre
La oss si at du er med tekst- og txt -filer. Til tross for forskjellige filutvidelser, er begge i samme format. I stedet for å håndtere både tekst og TXT, kan vi gi nytt navn til dem til TXT -filer.
$ 's/\.te?XT $/.txt/i '
På samme måte, i stedet for å håndtere både JPEG og JPG, kan vi gi nytt navn til dem alle til JPG.
$ 's/\.JPE?g $/.jpg/i '
Legg merke til at i begge tilfeller har filutvidelsene likheter bortsett fra ett tegn. Derfor kunne vi bruke denne snarveien. Hvis filutvidelsene er helt forskjellige, vil det ikke fungere.
Konklusjon
Rename -kommandoen er et enkelt verktøy å mestre. Det er veldig kraftig når du jobber med mange filer og omdøper dem til forskjellige formater. Det er også trygt å innlemme i bash -skript for automatisering. Hvis du er nybegynner, er her en fantastisk startguide for bash -skripting.
Glad databehandling!