januari 1, 2022

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.

exemplen i den här guiden används för att byta namn på alla filer i din nuvarande arbetskatalog. De flesta av dessa kommandon kan enkelt justeras för att fungera rekursivt. Observera att vissa exempel också kommer att byta namn på kataloger.

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 .jpegtill .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
använd alternativet -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
använd alternativet -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.mp3till 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.

 öppnar verktyget Bulk Rename

steg 2. Klicka på plustecknet för att lägga till filer som du vill byta namn på.

lägga till en lista med filer i Bulk Rename-programmet

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.

Bulk Rename tool visar gamla namn och nya filnamn

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.

slutföra bulk rename jobb

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.

Lämna ett svar

Din e-postadress kommer inte publiceras.