Hvordan Omdøpe Flere Filer samtidig På Linux
Omdøpe flere filer på Linux høres ut som en enkel oppgave, men det kan bli ganske komplisert. Det er mulig å bulk omdøpe filer med kommandoen mv
og Litt Bash scripting, eller bruk verktøyene mmv
og rename
– som vanligvis ikke er installert som standard. I denne veiledningen viser vi ulike eksempler for å omdøpe flere filer samtidig fra Linux – kommandolinjen.
Gi Nytt Navn Til Flere Filer med mv
kommandoen mv
er en standard del Av Linux og kan brukes til å omdøpe flere filer, men litt skripting er nødvendig for å gjøre jobben. Noen eksempler er også avhengige av andre Standard Linux-verktøy som ls
, find
, xargs
, etc.
Eksempel 1. Endre alle filnavn til små bokstaver.
$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'A-Z' 'a-z'`"; done
Eksempel 2. Endre alle filnavn til store bokstaver.
$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'a-z' 'A-Z'`"; done
Eksempel 3. Endre alle filtyper fra .jpeg
til .jpg
.
$ for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done
Eksempel 4. Fjern filtypen .bak
fra alle filer.
$ for f in `ls *.bak`; do mv $f ${f%.*}; done
Eksempel 5. Legg til en .bak
filtype til alle filer.
$ for f in `ls`; do mv $f $f.bak; done
Eksempel 6. Bruk xargs
for å legge til «_backup» til hver fil.
$ ls * | xargs -I{} mv {} {}_backup
Eksempel 7. Bruk kommandoene find
, sed
og mv
til å endre alle filer til små bokstaver.
$ find . -maxdepth 1 -type f -name '**'|sed -n 's/\(.*\/\)\(.*\)/mv -n -v -T \L/p'|sh
Eksempel 8. Bruk kommandoene find -exec
og mv
til å legge til» _backup » i hver fil som slutter på .log
– utvidelsen.
$ find . -type f -name "*.log" -exec mv {} {}_backup \;
Eksempel 9. Ligner på forrige eksempel, men erstatt finds -exec
– alternativ med xargs
for å legge til «_backup» til hver fil som slutter i .log
– utvidelse.
$ find . -type f -name '*log' -print0 | xargs --null -I{} mv {} {}_backup
Eksempel 10. Erstatt et mønster i hver fil ved hjelp av mv
og sed
. Dette vil erstatte » IMG » med «Ferie» i hver .jpg
fil.
$ for f in *.jpg; do mv "$f" "`echo "$f" | sed s/IMG/Vacation/`"; done
Eksempel 11. Legg til gjeldende tidsstempel i alle filer som slutter på .log
. Dette vil endre en fil som access.log
til access_20210418040151.log
.
$ for f in *.log; do mv "$f" "${f%.log}"_`date +%Y%m%d%H%M%S`.log; done
Gi Nytt Navn Til Flere Filer med rename
rename-verktøyet gjør våre bulk-omdøpingsoppgaver litt enklere, men verktøyet er ikke alltid installert som standard. Bruk den riktige kommandoen nedenfor for å installere den med systemets pakkebehandling.
Ubuntu, Debian Og Linux Mint:
$ sudo apt install rename
Fedora, AlmaLinux, CentOS OG RHEL:
$ sudo dnf install prename
Arch Linux Og Manjaro:
$ sudo pacman -S perl-rename
-n
i kommandoene rename
hvis du vil forhåndsvise endringene før du gjør dem.Eksempel 1. Endre alle filnavn til små bokstaver.
$ rename 'y/A-Z/a-z/' *
Eksempel 2. Endre alle filnavn til store bokstaver.
$ rename 'y/a-z/A-Z/' *
Eksempel 3. Fjern .bak
– utvidelsen fra alle filer.
$ rename 's/\.bak$//' *.bak
Eksempel 4. Endre utvidelsen av alle .jpeg
filer til .jpg
.
$ rename 's/\.jpeg/\.jpg/' *.jpeg
Eksempel 5. Endre utvidelsen med store bokstaver .JPG
til små bokstaver .jpg
for alle filer.
$ rename 's/\.JPG/\.jpg/' *.JPG
Eksempel 6. Fjern mellomrom fra alle filnavn.
$ rename "s/ *//g" *
Eksempel 7. Erstatt mellomrom med understrek for alle filnavn.
$ rename 's/\s+/_/g' *
Eksempel 8. Kapitalisere den første bokstaven i alle filnavn.
$ rename 's/\b(\w)/\U/g' *
Eksempel 9. Erstatt et mønster i hvert filnavn. Denne kommandoen vil erstatte » IMG » med «Ferie» i hver .jpg
fil.
$ rename 's/IMG/Vacation/' *.jpg
Eksempel 10. Slett en del av et filnavn. Denne kommandoen vil fjerne «IMG_» fra hver .jpg
fil.
$ rename 's/IMG_//' *.jpg
Eksempel 11. Tilføy .bak
– utvidelsen til alle filer.
$ rename 's/(.*)/.bak/' *
Gi Nytt Navn Til Flere Filer med mmv
mmv-verktøyet utmerker seg ved å gi nytt navn til filer basert på mønstre, for eksempel å fjerne eller legge til strenger i alle filer, eller omorganisere deler av filnavn. Det er vanligvis ikke installert som standard, men du kan bruke den riktige kommandoen nedenfor for å installere mmv med systemets pakkebehandling.
Ubuntu, Debian Og Linux Mint:
$ sudo apt install mmv
Fedora, AlmaLinux, CentOS OG RHEL:
$ sudo dnf install mmv
Arch Linux Og Manjaro (installer FRA AUR):
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
-n
i kommandoene mmv
hvis du vil forhåndsvise endringene før du gjør dem.Eksempel 1. Endre utvidelsen av alle .jpeg
filer til .jpg
.
$ mmv '*.jpeg' '#1.jpg'
Eksempel 2. Endre alle filnavn til små bokstaver.
$ mmv '*' '#l1'
Eksempel 3. Endre alle filnavn til store bokstaver.
$ mmv '*' '#u1'
Eksempel 4. Omorganisere deler av et filnavn. Denne kommandoen vil endre musikkfiler med mønster Song-Artist.mp3
til Artist-Song.mp3
.
$ mmv '*-*.mp3' '#2-#1.mp3'
Eksempel 5. Erstatt den første forekomsten AV » IMG » med «Ferie» i alle filnavn.
$ mmv '*IMG*' '#1Vacation#2'
Eksempel 6. Legg til et prefiks i hvert filnavn. Denne kommandoen vil prepend «backup_» til hver .log
fil.
$ mmv '*.log' 'backup_#1.log'
Eksempel 7. Legg til et suffiks til hvert filnavn. Denne kommandoen vil legge til «_backup» til hver .log
fil.
$ mmv '*.log' '#1.log_backup'
Eksempel 8. Fjern» IMG_ » prefikset fra alle .jpg
filer.
$ mmv 'IMG_*.jpg' '#1'
Eksempel 9. Fjern suffikset» _old » fra alle filer.
$ mmv '*_old' '#1'
Bulk Endre Navn På Filer via GUI
Hvis kommandolinjen er egentlig ikke noe, er det mulig å endre navn på flere filer samtidig VIA GUI. Et av de beste verktøyene for å gjøre jobben er Bulk Rename-programmet som følger Med Thunar.
Thunar Er standard filbrowser For Xfce, men du kan installere den uansett hvilket skrivebordsmiljø du bruker. Hvis Du allerede bruker Xfce eller Thunar, Er Bulk Rename allerede en del av systemet ditt. Ellers bruker du den riktige kommandoen nedenfor for å installere den med systemets pakkebehandling.
Ubuntu, Debian Og Linux Mint:
$ sudo apt install thunar
Fedora, AlmaLinux, CentOS OG RHEL:
$ sudo dnf install thunar
Arch Linux Og Manjaro:
$ sudo pacman -S thunar
Trinn 1. Etter At Thunar er installert, søk etter Og åpne Bulk Rename-verktøyet.
Trinn 2. Klikk på plusstegnet for å legge til filer du vil gi nytt navn til.
Trinn 3. Velg fra listen over alternativer hva du vil gjøre med filene. Du kan endre dem alle til store eller små bokstaver, legge til en dato og et klokkeslett, sette inn tekst i en bestemt posisjon, legge til automatisk nummerering, erstatte tegn, eller søke og erstatte visse mønstre i filnavnene, blant annet. I eksemplet nedenfor har vi lagt til en .txt
filtype til alle våre filer.
Trinn 4. Når du er fornøyd med forhåndsvisede navneendringer i Kolonnen» Nytt Navn», klikker du på «Gi Nytt Navn Til Filer» for å utføre masseendringen.
Gi Nytt Navn Til Flere Filer PÅ WSL
hvis du bruker Windows Subsystem For Linux, vil noen kommandoer ovenfor ikke fungere, spesielt de som involverer å endre filer til små eller store bokstaver. Windows er små bokstaver, og anser derfor File.txt
, file.txt
og FILE.txt
for alle å være den samme filen.
du får bare en feil om at filen allerede eksisterer hvis du prøver å gi nytt navn til FILE.txt
til file.txt
. Bruk ett av eksemplene nedenfor for å unngå dette problemet.
Eksempel 1. Endre utvidelsen med store bokstaver .JPG
til små bokstaver .jpg
for alle filer (ved hjelp av standardverktøy).
$ for f in *.JPG; do mv "$f" "${f%.JPG}.jpgaux"; done && for f in *.jpgaux; do mv "$f" "${f%.jpgaux}.jpg"; done
Eksempel 2. Endre store bokstaver .JPG
til små bokstaver .jpg
for alle filer (ved hjelp av rename utility).
$ rename 's/\.JPG$/\.jpgaux/' *.JPG && rename 's/\.jpgaux$/\.jpg/' *.jpgaux
Eksempel 3. Endre utvidelsen med store bokstaver .JPG
til små bokstaver .jpg
for alle filer (ved hjelp av mmv-verktøyet).
$ mmv '*.JPG' '#1.jpgaux' && mmv '*.jpgaux' '#1.jpg'
Eksempel 4. Endre alle filnavn til små bokstaver (ved hjelp av standardverktøy).
$ for f in `ls | grep `; do mv "$f" "`echo $f.aux | tr 'A-Z' 'a-z'`"; done && for f in `ls *.aux`; do mv $f ${f%.*}; done
Eksempel 5. Endre alle filnavn til små bokstaver (ved hjelp av mmv utility).
$ mmv '*' '#l1.aux' && mmv '*.aux' '#1'
Konklusjon
det er mulig å bruke standard Bash verktøy for alle bulk døpe På Linux, men endre navn og mmv verktøy gjør det mye enklere. Vi kan også bruke Thunars Bulk Rename-applikasjon når vi foretrekker Å bruke GUI over kommandolinjen. Eksemplene i denne veiledningen dekker et bredt spekter av nye scenarier og kan enkelt tilpasses andre behov.