hur man byter namn på flera filer samtidigt på Linux
byta namn på flera filer på Linux låter som en enkel uppgift, men det kan bli ganska komplicerat. Det är möjligt att byta namn på filer med kommandot mv
och lite Bash – skript, eller använd verktygen mmv
och rename
– som vanligtvis inte installeras som standard. I den här guiden visar vi olika exempel för att byta namn på flera filer samtidigt från Linux-kommandoraden.
Byt namn på flera filer med mv
kommandot mv
är en standarddel av Linux och kan användas för att byta namn på flera filer, men lite skript krävs för att göra jobbet. Några exempel är också beroende av andra standard Linux-verktyg som ls
, find
, xargs
, osv.
exempel 1. Ändra alla filnamn till små bokstäver.
$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'A-Z' 'a-z'`"; done
exempel 2. Ändra alla filnamn till versaler.
$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'a-z' 'A-Z'`"; done
exempel 3. Ändra alla filtillägg från .jpeg
till .jpg
.
$ for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done
exempel 4. Ta bort filtillägget .bak
från alla filer.
$ for f in `ls *.bak`; do mv $f ${f%.*}; done
exempel 5. Lägg till en .bak
filtillägg till alla filer.
$ for f in `ls`; do mv $f $f.bak; done
exempel 6. Använd xargs
för att lägga till ”_backup” till varje fil.
$ ls * | xargs -I{} mv {} {}_backup
exempel 7. Använd kommandona find
, sed
och mv
för att ändra alla filer till små bokstäver.
$ find . -maxdepth 1 -type f -name '**'|sed -n 's/\(.*\/\)\(.*\)/mv -n -v -T \L/p'|sh
exempel 8. Använd kommandona find -exec
och mv
för att lägga till ”_backup” till varje fil som slutar med .log
– tillägget.
$ find . -type f -name "*.log" -exec mv {} {}_backup \;
exempel 9. I likhet med föregående exempel, men ersätt find ’ s -exec
alternativ med xargs
för att lägga till ”_backup” till varje fil som slutar med .log
förlängning.
$ find . -type f -name '*log' -print0 | xargs --null -I{} mv {} {}_backup
exempel 10. Byt ut ett mönster i varje fil med mv
och sed
. Detta kommer att ersätta ”IMG ”med” semester ” i varje .jpg
– fil.
$ for f in *.jpg; do mv "$f" "`echo "$f" | sed s/IMG/Vacation/`"; done
exempel 11. Lägg till aktuell tidsstämpel i alla filer som slutar på .log
. Detta skulle ändra en fil som access.log
till access_20210418040151.log
.
$ for f in *.log; do mv "$f" "${f%.log}"_`date +%Y%m%d%H%M%S`.log; done
Byt namn på flera filer med Byt namn på
rename-verktyget gör våra massnamnsuppgifter lite enklare, men verktyget är inte alltid installerat som standard. Använd lämpligt kommando nedan för att installera det med systemets pakethanterare.
Ubuntu, Debian och Linux Mint:
$ sudo apt install rename
Fedora, Almalinux, CentOS och RHEL:
$ sudo dnf install prename
Arch Linux och Manjaro:
$ sudo pacman -S perl-rename
-n
i kommandona rename
om du vill förhandsgranska ändringarna innan du gör dem.exempel 1. Ändra alla filnamn till små bokstäver.
$ rename 'y/A-Z/a-z/' *
exempel 2. Ändra alla filnamn till versaler.
$ rename 'y/a-z/A-Z/' *
exempel 3. Ta bort tillägget .bak
från alla filer.
$ rename 's/\.bak$//' *.bak
exempel 4. Ändra utvidgningen av alla .jpeg
– filer till .jpg
.
$ rename 's/\.jpeg/\.jpg/' *.jpeg
exempel 5. Ändra versaler .JPG
till gemener .jpg
för alla filer.
$ rename 's/\.JPG/\.jpg/' *.JPG
exempel 6. Ta bort tomma mellanslag från alla filnamn.
$ rename "s/ *//g" *
exempel 7. Ersätt tomma mellanslag med understreck för alla filnamn.
$ rename 's/\s+/_/g' *
exempel 8. Aktivera den första bokstaven i alla filnamn.
$ rename 's/\b(\w)/\U/g' *
exempel 9. Byt ut ett mönster i varje filnamn. Detta kommando kommer att ersätta ” IMG ”med” semester ” i varje .jpg
– fil.
$ rename 's/IMG/Vacation/' *.jpg
exempel 10. Ta bort en del av ett filnamn. Detta kommando tar bort” IMG_ ” från varje .jpg
– fil.
$ rename 's/IMG_//' *.jpg
exempel 11. Lägg till .bak
– tillägget till alla filer.
$ rename 's/(.*)/.bak/' *
Byt namn på flera filer med mmv
Mmv-verktyget utmärker sig vid att byta namn på filer baserat på mönster, till exempel att ta bort eller lägga till strängar i alla filer eller ordna om delar av filnamn. Det är vanligtvis inte installerat som standard, men du kan använda lämpligt kommando nedan för att installera mmv med systemets pakethanterare.
Ubuntu, Debian och Linux Mint:
$ sudo apt install mmv
Fedora, Almalinux, CentOS och RHEL:
$ sudo dnf install mmv
Arch Linux och Manjaro (installera från AUR):
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
-n
i kommandona mmv
om du vill förhandsgranska ändringarna innan du gör dem. exempel 1. Ändra utvidgningen av alla .jpeg
– filer till .jpg
.
$ mmv '*.jpeg' '#1.jpg'
exempel 2. Ändra alla filnamn till små bokstäver.
$ mmv '*' '#l1'
exempel 3. Ändra alla filnamn till versaler.
$ mmv '*' '#u1'
exempel 4. Ordna om delar av ett filnamn. Detta kommando kommer att ändra musikfiler med mönster Song-Artist.mp3
till Artist-Song.mp3
.
$ mmv '*-*.mp3' '#2-#1.mp3'
exempel 5. Ersätt den första förekomsten av” IMG ”med” semester ” i alla filnamn.
$ mmv '*IMG*' '#1Vacation#2'
exempel 6. Lägg till ett prefix till varje filnamn. Detta kommando kommer att prepend ”backup_” till varje .log
fil.
$ mmv '*.log' 'backup_#1.log'
exempel 7. Lägg till ett suffix till varje filnamn. Detta kommando kommer att lägga till ”_backup” till varje .log
– fil.
$ mmv '*.log' '#1.log_backup'
exempel 8. Ta bort prefixet ”IMG_” från alla .jpg
– filer.
$ mmv 'IMG_*.jpg' '#1'
exempel 9. Ta bort suffixet ”_old” från alla filer.
$ mmv '*_old' '#1'
Bulk Byt namn på filer via GUI
om kommandoraden inte är din sak är det möjligt att byta namn på flera filer samtidigt via GUI. Ett av de bästa verktygen för att göra jobbet är Bulk Rename-applikationen som följer med Thunar.
Thunar är standardfilbläddraren för Xfce, men du kan installera den oavsett vilken skrivbordsmiljö du använder. Om du redan använder Xfce eller Thunar, är Bulk Rename redan en del av ditt system. Annars använder du lämpligt kommando nedan för att installera det med systemets pakethanterare.
Ubuntu, Debian och Linux Mint:
$ sudo apt install thunar
Fedora, Almalinux, CentOS och RHEL:
$ sudo dnf install thunar
Arch Linux och Manjaro:
$ sudo pacman -S thunar
Steg 1. När Thunar är installerat, Sök efter och öppna verktyget Bulk Rename.
steg 2. Klicka på plustecknet för att lägga till filer som du vill byta namn på.
steg 3. Välj i listan med alternativ vad du vill göra med filerna. Du kan ändra dem alla till stora eller små bokstäver, lägga till ett datum och tid, infoga text på en viss position, lägga till automatisk numrering, ersätta tecken eller söka och ersätta vissa mönster i filnamnen, bland annat. I exemplet nedan har vi lagt till ett .txt
filtillägg till alla våra filer.
steg 4. När du är nöjd med de förhandsgranskade namnändringarna i kolumnen ”nytt namn” klickar du på ”Byt namn på filer” för att utföra massnamnet.
byta namn på flera filer på WSL
om du använder Windows Subsystem för Linux, vissa kommandon ovan fungerar inte, särskilt de som innebär att ändra filer till gemener eller versaler. Windows är skiftlägeskänslig, så anser File.txt
, file.txt
och FILE.txt
att alla är samma fil.
du får helt enkelt ett fel att filen redan finns om du försöker byta namn på FILE.txt
till file.txt
. För att undvika det här problemet, använd ett av följande exempel.
exempel 1. Ändra versaler .JPG
till gemener .jpg
för alla filer (med standardverktyg).
$ for f in *.JPG; do mv "$f" "${f%.JPG}.jpgaux"; done && for f in *.jpgaux; do mv "$f" "${f%.jpgaux}.jpg"; done
exempel 2. Ändra versaler förlängning .JPG
till gemener .jpg
för alla filer (med rename utility).
$ rename 's/\.JPG$/\.jpgaux/' *.JPG && rename 's/\.jpgaux$/\.jpg/' *.jpgaux
exempel 3. Ändra versaler .JPG
till gemener .jpg
för alla filer (med Mmv-verktyget).
$ mmv '*.JPG' '#1.jpgaux' && mmv '*.jpgaux' '#1.jpg'
exempel 4. Ändra alla filnamn till små bokstäver (med standardverktyg).
$ 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
exempel 5. Ändra alla filnamn till små bokstäver (med Mmv-verktyg).
$ mmv '*' '#l1.aux' && mmv '*.aux' '#1'
slutsats
det är möjligt att använda standard Bash verktyg för alla dina bulk döpa på Linux, men byta namn och Mmv verktyg gör det mycket enklare. Vi kan också använda thunars Bulk Rename-applikation när vi föredrar att använda GUI över kommandoraden. Exemplen i den här guiden täcker ett brett spektrum av döpa scenarier och kan lätt anpassas för att passa andra behov.