januar 1, 2022

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.

eksemplene i denne håndboken brukes til å gi nytt navn til alle filene i din nåværende arbeidskatalog. De fleste av disse kommandoene kan lett bli forskjøvet til å fungere rekursivt. Merk at noen eksempler også vil gi nytt navn til kataloger.

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
Bruk alternativet -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
Bruk alternativet -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.

 Åpne Verktøyet Bulk Rename

Trinn 2. Klikk på plusstegnet for å legge til filer du vil gi nytt navn til.

 Legge til en liste over filer I Bulk Gi nytt navn til programmet

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.

 Bulk Rename tool viser de gamle navnene og nye filnavnene

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.

Fullfører bulk gi nytt navn til jobben

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.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.