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
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.
- 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
- 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
- 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
- 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
- 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 \;
- 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
- 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.
- 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/' *
- 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
- använd följande kommando för att kapitalisera den första bokstaven i varje filnamn.
$ rename 's/\b(\w)/\U/g' *
- 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' *
- 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.
- 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'
- detta kommando kommer att ersätta den första förekomsten av ”foo” med ”bar” i alla filnamn.
$ mmv '*foo*' '#1bar#2'
- 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
ochrejected.log-webserver
och byter namn på dem tillaccess-dbserver.log
respektiverejected-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'
- ändra alla filnamn till små bokstäver med det här kommandot.
$ mmv '*' '#l1'
- 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.