Endre Navn på filer På Linux-systemer håndteres vanligvis av kommandoen mv
(move). Syntaksen er bare mv old.txt new.txt
. Enkelt nok, men hva om vi har flere filer som må omdøpes samtidig, til og med hundrevis av dem? Standard mv-verktøyet kan ikke håndtere å omdøpe mer enn en fil med mindre vi gjør litt skripting. Det finnes også andre verktøy vi kan installere for å løse problemet, som rename
og mmv
.
i denne veiledningen viser Vi deg hvordan du bruker kommandoen mv
samt verktøyene rename
og mmv
for å gi nytt navn til flere filer på Linux distro. Vi går over flere eksempler, slik at du kan forstå syntaksen og hvordan du bruker hver metode.
i denne opplæringen vil du lære:
- slik omdøper du flere filer samtidig med mv-kommando
- slik installerer du omdøpe på store Linux distros
- slik installerer du mmv på store Linux distros
- slik bruker du mmv, gjennom kommandoeksempler
- slik bruker du omdøpe, gjennom kommandoeksempler
Kategori | Krav, Konvensjoner eller Programvareversjon Brukt |
---|---|
System | Noen Linux distro |
Programvare | mv, endre navn, mmv |
Annet | Privilegert tilgang Til Linux-systemet ditt som rot eller via kommandoen sudo . |
Konvensjoner | # – krever at gitte linux-kommandoer kjøres med rotrettigheter enten direkte som rotbruker eller ved bruk av kommandoen sudo $ – krever at gitte linux-kommandoer kjøres som en vanlig ikke-privilegert bruker |
Gi nytt navn til flere filer samtidig med mv command
Omdøpe flere filer med mv-kommandoen er lettere hvis du vet litt Bash scripting. Ta en titt på noen av eksemplene nedenfor for å se noen vanlige bruksområder med denne metoden.
- folgende kommando vil legge til en .txt filtypen til alle filene i din nåværende arbeidskatalog.
$ for i in $( ls ); do mv $i $i.txt; done
- for å fjerne en filtype fra alle filer, kan du bruke denne kommandoen.
$ for i in $( ls *.txt ); do mv $i ${i%.*}; done
- Vi kan også endre filtypen for hver fil. Folgende kommando vil endre alle filer med den .logg forlengelse til .txt.
$ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
- Du kan også bruke finn-kommandoen, sammen med
-exec
– alternativet eller xargs-kommandoen for å gi nytt navn til flere filer samtidig. Denne kommandoen vil legge til .bak til hver fil som begynner med mønsteret «fil».$ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
- denne kommandoen bruker finn og
-exec
alternativet for å legge til «_backup» til alle filer som slutter i .txt forlengelse.$ find . -name "*.txt" -exec mv {} {}_backup \;
- vi kan også bruke xargs til å gjøre det samme. Denne kommandoen vil godta standardinngang fra kommandoen
ls
, og bruk deretter xargs til å legge til «_backup» til alle filer som slutter i .txt forlengelse.$ ls *.txt | xargs -I{} mv {} {}_backup
- for å endre alle filer med den .txt i den nåværende katalogen for å bare ha små bokstaver, vil denne kommandoen gjøre jobben.
$ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done
fordelen med denne metoden er at Vi ikke trenger Noen Ekstra Linux-programvare-vi bruker bare det innfødte mv-verktøyet, og noen ganger kombinert med ls, find eller xargs. Men som vi har sett i disse eksemplene, kan det være ganske komplisert å gjøre noe enkelt som å endre navn på noen få filer. Sjekk ut noen av de andre metodene nedenfor for å se noen mer praktiske alternativer som krever installasjon.
Installer rename utility
Din Linux distro kan allerede ha rename
installert som standard. Bare hvis det ikke allerede er installert, kan du bruke den riktige kommandoen nedenfor for å installere den gjennom systemets pakkebehandling.
for å installere nytt navn På Ubuntu, Debian og Linux Mint:
$ sudo apt install rename
for å installere endre navn På CentOS, Fedora, AlmaLinux, Og Red Hat:
$ sudo dnf install prename
slik installerer du nytt navn På Arch Linux Og Manjaro:
$ sudo pacman -S perl-rename
gi nytt navn til kommandoeksempler
kommandoen rename
godtar perl-uttrykk for å gjøre det faktiske omdøpet. Hvis du allerede er kjent med denne syntaksen, vil rename være veldig enkelt å bruke. Hvis ikke, ikke bekymre deg, vi har noen eksempler nedenfor som vil hjelpe deg å få taket på det.
Her har vi samlet noen av de vanligste scenariene som du trenger for å gi nytt navn til flere filer samtidig. Disse kommandoene antar at filene du vil endre navn på, er i din nåværende arbeidskatalog. Du kan alltid angi banen til andre kataloger hvis du ønsker det.
Det er noen alternativer du kan bruke med rename
. Alternativet -n
vil vise deg hvilke endringer omdøpe skal gjøre, uten å gjøre endringene. Dette hjelper deg med å unngå uønskede endringer. Alternativet -v
(detaljert) skriver ut navnene på filer som har fått nytt navn.
- denne kommandoen vil omdøpe store filer til små bokstaver.
$ rename 'y/A-Z/a-z/' *
Eller, for å konvertere små til store bokstaver:
$ rename 'y/a-z/A-Z/' *
- for å endre utvidelsen av en haug med filer, bruk følgende syntaks. Dette eksemplet vil konvertere .loggfiler til .txt-filer.
$ rename 's/\.log$/\.txt/' *.log
- bruk følgende kommando for å kapitalisere den første bokstaven i hvert filnavn.
$ rename 's/\b(\w)/\U/g' *
- utfør denne kommandoen for å fjerne alle mellomrom fra filnavn.
$ rename "s/ *//g" *
Eller, for å erstatte mellomrom med understrek:
$ rename 's/\s+/_/g' *
- hvis du vil fjerne en filtype fra en haug med filer, bruker du følgende syntaks. Dette eksemplet vil fjerne det .bak forlengelse.
$ rename 's/\.bak$//' *.bak
Installer mmv utility
du kan bruke den riktige kommandoen nedenfor for å installere mmv gjennom systemets pakkebehandling.
for å installere mmv På Ubuntu, Debian og Linux Mint:
$ sudo apt install mmv
for å installere mmv På CentOS, Fedora, AlmaLinux og Red Hat:
$ sudo dnf install mmv
for å installere mmv På Arch Linux Og Manjaro:
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
mmv kommandoeksempler
den mest attraktive funksjonen til mmv er evnen til enkelt å omdøpe mange filer ved å akseptere jokertegn i kommandoen. Dette gjør at du enkelt kan legge til eller fjerne visse mønstre fra filnavn, eller til og med ordne tekst i navnene. Sjekk ut noen av eksemplene nedenfor for å lære syntaksen for mmv-verktøyet, og se noen av de vanligste kommandoene du kan finne deg selv med det. Husk at du kan bruke alternativet -n
med mmv for å forhåndsvise endringer.
- Bruk dette eksemplet til å endre filtypen på en haug med filer. Denne kommandoen vil endre alle filer med forlengelse .htm til .HTML.
$ mmv '*.htm' '#1.html'
- denne kommandoen erstatter den første forekomsten av «foo» med «bar» i alle filnavn.
$ mmv '*foo*' '#1bar#2'
- følgende kommando gir deg en ide om hvordan du kan bruke mmv til å omorganisere deler av et filnavn. Dette eksemplet vil ta filer som
access.log-dbserver
ogrejected.log-webserver
og endre navn på dem til henholdsvisaccess-dbserver.log
ogrejected-webserver.log
. For at dette skal fungere, trenger vi bare å ha et konsekvent mønster, for eksempel dash og periode i dette tilfellet.
$ mmv '*.log-*' '#1-#2.log'
- Endre alle filnavn til små bokstaver ved hjelp av denne kommandoen.
$ mmv '*' '#l1'
- Omvendt, endre filnavn til alle store bokstaver med denne.
$ mmv '*' '#u1'
Lukke Tanker
i denne veiledningen lærte vi flere forskjellige metoder for å omdøpe flere filer samtidig på Linux. Vi så også en rekke kommandolinjeeksempler som kan dekke mange forskjellige scenarier eller lett tilpasses for å passe til lignende situasjoner. Bulk døpe kan gjøres gjennom innfødte bash verktøy som mv, ls, xargs, og finn, eller vi kan installere mmv eller endre navn verktøyet for å gjøre livet litt enklere. Hver metode har sine styrker og svakheter, så bruk den du tror vil være mest praktisk for deg.