hur man byter namn på flera filer på Linux

byta namn på filer på Linux-system hanteras vanligtvis av kommandot mv (flytta). Syntaxen är bara mv old.txt new.txt. Enkelt nog, men vad händer om vi har flera filer som måste bytas om på en gång, till och med hundratals av dem? Standard MV-verktyget kan inte hantera att byta namn på mer än en fil om vi inte gör lite skript. Det finns också andra verktyg vi kan installera för att lösa problemet, som rename och mmv.

i den här guiden visar vi dig hur du använder kommandot mv samt verktygen rename och mmv för att byta namn på flera filer på din Linux-distro. Vi går igenom flera exempel så att du kan förstå syntaxen och hur du använder varje metod.

i denna handledning lär du dig:

  • hur man byter namn på flera filer på en gång med MV kommando
  • hur man installerar byta namn på större Linux distros
  • hur man installerar mmv på större Linux distros
  • hur man använder Mmv, genom kommandoexempel
  • hur man använder byta namn, genom kommandoexempel
byta namn på flera filer samtidigt på Linux

byta namn på flera filer samtidigt på Linux

programkrav och Linux-Kommandoradskonventioner
Kategori krav, konventioner eller programvaruversion Används
System alla Linux-distributioner
programvara MV, Byt namn, mmv
Övrigt privilegierad åtkomst till ditt Linux-system som root eller via kommandot sudo.
konventioner # – kräver att givna linux-kommandon körs med root-privilegier antingen direkt som root-användare eller med hjälp av sudo kommando
$ – kräver att givna linux-kommandon körs som en vanlig icke-privilegierad användare

Byt namn på flera filer samtidigt med MV-kommandot

att byta namn på flera filer med MV-kommandot är lättare om du känner till lite Bash-skript. Ta en titt på några av exemplen nedan för att se några vanliga användningsområden med den här metoden.

  1. följande kommando kommer att lägga till en .Txt-filtillägg till alla filer i din nuvarande arbetskatalog.
    $ for i in $( ls ); do mv $i $i.txt; done
  2. för att ta bort ett filtillägg från alla filer kan du använda det här kommandot.
    $ for i in $( ls *.txt ); do mv $i ${i%.*}; done
  3. vi kan också ändra filtillägget för varje fil. Följande kommando kommer att ändra alla filer med .logga förlängning till .txt.
    $ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
  4. du kan också använda kommandot Sök, tillsammans med alternativet -exec eller xargs-kommandot för att byta namn på flera filer samtidigt. Detta kommando kommer att lägga till .bak till varje fil som börjar med mönstret ”file”.
    $ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
  5. detta kommando använder Sök och alternativet -exec för att lägga till ”_backup” till alla filer som slutar i .Txt förlängning.
    $ find . -name "*.txt" -exec mv {} {}_backup \;
  6. vi kan också använda xargs för att göra samma sak. Detta kommando accepterar standardinmatning från kommandot ls och använder sedan xargs för att lägga till ”_backup” till alla filer som slutar i .Txt förlängning.
    $ ls *.txt | xargs -I{} mv {} {}_backup
  7. för att ändra alla filer med .txt i den nuvarande katalogen för att endast ha små bokstäver, kommer det här kommandot att göra jobbet.
    $ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done

fördelen med den här metoden är att vi inte behöver någon extra Linux – programvara-vi använder bara det inbyggda MV-verktyget, och ibland i kombination med ls, find eller xargs. Men som vi har sett i dessa exempel kan det vara ganska komplicerat att göra något enkelt som att byta namn på några filer. Kolla in några av de andra metoderna nedan för att se några mer praktiska alternativ som kräver installation.

installera rename utility

din Linux distro kanske redan har rename installerat som standard. Bara om det inte redan är installerat kan du använda rätt kommando nedan för att installera det via systemets pakethanterare.

för att installera Byt namn på Ubuntu, Debian och Linux Mint:

$ sudo apt install rename

för att installera Byt namn på CentOS, Fedora, AlmaLinux och Red Hat:

$ sudo dnf install prename

för att installera Byt namn på Arch Linux och Manjaro:

$ sudo pacman -S perl-rename

Byt namn på kommandoexempel

kommandot rename accepterar perl-uttryck för att göra det faktiska namnet. Om du redan är bekant med denna syntax, sedan byta namn kommer att vara mycket lätt att använda. Om inte, oroa dig inte, vi har några exempel nedan som hjälper dig att få tag på det.

Här har vi sammanställt några av de vanligaste scenarierna som du skulle behöva byta namn på flera filer samtidigt. Dessa kommandon antar att filerna du vill byta namn på finns i din nuvarande arbetskatalog. Du kan alltid ange sökvägen till andra kataloger om du vill.

det finns några alternativ du kan använda med rename. Alternativet -n visar vilka ändringar som ska bytas ut utan att göra ändringarna. Detta hjälper dig att undvika oönskade förändringar. Alternativet -v(verbose) skriver ut namnen på filer som har bytt namn.

  1. detta kommando kommer att byta namn på stora filer till små bokstäver.
    $ rename 'y/A-Z/a-z/' *

    eller, för att konvertera små bokstäver till stora bokstäver:

    $ rename 'y/a-z/A-Z/' *
  2. för att ändra förlängningen av en massa filer, använd följande syntax. Detta speciella exempel kommer att konvertera .logga filer till .txt-filer.
    $ rename 's/\.log$/\.txt/' *.log
  3. använd följande kommando för att kapitalisera den första bokstaven i varje filnamn.
    $ rename 's/\b(\w)/\U/g' *
  4. för att ta bort alla tomma mellanslag från filnamn, kör det här kommandot.
    $ rename "s/ *//g" *

    eller, för att ersätta mellanslag med understreck:

    $ rename 's/\s+/_/g' *
  5. för att ta bort ett filtillägg från en massa filer, använd följande syntax. Detta exempel kommer att ta bort .bak förlängning.
    $ rename 's/\.bak$//' *.bak

installera Mmv utility

du kan använda lämpligt kommando nedan för att installera mmv via systemets pakethanterare.

för att installera mmv på Ubuntu, Debian och Linux Mint:

$ sudo apt install mmv

för att installera mmv på CentOS, Fedora, AlmaLinux och Red Hat:

$ sudo dnf install mmv

för att installera mmv på Arch Linux och Manjaro:

$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si

Mmv-kommandoexempel

den mest attraktiva funktionen i mmv är dess förmåga att enkelt byta namn på många filer genom att acceptera jokertecken i kommandot. Detta gör att du enkelt lägga till eller ta bort vissa mönster från filnamn, eller ens ordna text inom namnen. Kolla in några av exemplen nedan för att lära dig syntaxen för Mmv-verktyget och se några av de vanligaste kommandona som du kan hitta dig själv med det. Tänk på att du kan använda alternativet -n med mmv för att förhandsgranska ändringar.

  1. använd det här exemplet för att ändra filtillägget på en massa filer. Detta kommando kommer att ändra alla filer med tillägg .htm till .HTML.
    $ mmv '*.htm' '#1.html'
  2. detta kommando kommer att ersätta den första förekomsten av ”foo” med ”bar” i alla filnamn.
    $ mmv '*foo*' '#1bar#2'
  3. följande kommando ger dig en uppfattning om hur du kan använda mmv för att ordna om delar av ett filnamn. Det här exemplet tar filer som access.log-dbserver och rejected.log-webserver och byter namn på dem till access-dbserver.log respektive rejected-webserver.log. För att detta ska fungera behöver vi bara ha ett konsekvent mönster, till exempel bindestreck och period i det här fallet.
    $ mmv '*.log-*' '#1-#2.log'
  4. ändra alla filnamn till små bokstäver med det här kommandot.
    $ mmv '*' '#l1'
  5. omvänt, ändra filnamn till alla stora bokstäver med den här.
    $ mmv '*' '#u1'

avslutande tankar

i den här guiden lärde vi oss flera olika metoder för att byta namn på flera filer samtidigt på Linux. Vi såg också en mängd kommandoradsexempel som kan täcka många olika scenarier eller enkelt anpassas för att passa liknande situationer. Bulk döpa kan göras genom infödda bash verktyg som mv, ls, xargs, och hitta, eller vi kan installera Mmv eller byta namn verktyg för att göra våra liv lite enklare. Varje metod har sina styrkor och svagheter, så använd den du tror är mest lämplig för dig.

Lämna ett svar

Din e-postadress kommer inte publiceras.