Gi nytt navn til Linux -filer med gi nytt navn

Gi nytt navn til Linux -filer med gi nytt navn

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!