introduktion
Linux ger flera alternativ för att byta namn på filer, inklusive användning av GUI och flera dedikerade terminalkommandon. Detta gör det relativt enkelt att byta namn på enskilda filer, men det kan vara utmanande att byta namn på flera filer samtidigt.
i denna handledning kommer vi att gå över olika kommandon som du kan använda i Linux-terminalen för att byta namn på filer i Linux.
förutsättningar
- ett system som kör en Linux-distribution
- ett konto med sudo-privilegier
- tillgång till terminalfönstret/kommandoraden
- tillgång till en textredigerare, till exempel Vim eller Nano
Byt namn på Filer med MV-kommandot
Linux mv
(flytta) kommandot används för att flytta filer och kataloger från terminalen. Den använder följande syntax:
mv
om du anger en katalog som destination när du använder kommandot mv
flyttas källfilen till den katalogen. Om destinationen är ett annat filnamn byter kommandot mv
källfilen till det namnet istället.
Läs mer om hur du använder MV-kommandot i vår guide för att flytta kataloger i Linux.
Byt namn på en enda fil med MV-kommandot
med kommandot mv
med standardsyntaxen kan du byta namn på en enda fil:
mv
till exempel, om vi vill byta namn på exempel1.txt till exempel2.txt, vi skulle använda:
mv example1.txt example2.txt
eftersom det inte finns någon utgång om kommandot lyckas använder vi kommandot ls
för att kontrollera om namnet ändras:
ls -l
Byt namn på flera filer med kommandot MV
kommandot mv
byter namn på en enda fil. Men genom att kombinera det med andra kommandon kan du byta namn på flera filer samtidigt.
en metod är att använda kommandot find
för att välja flera filer med ett liknande namn, använd sedan kommandot mv
för att byta namn på dem:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
med hjälp av denna syntax definierar kommandot find
ett element i det aktuella filnamnet som sökparametern. Därefter kör -exec
kommandot mv
på alla filer som matchar sökningen och ändrar deras nuvarande filnamn till den nya.
till exempel, om vi har exempel1.txt, exempel2.txt, och exempel3.txt och vill ändra tillägget till .pdf:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
en annan metod är att använda kommandot mv
som en del av en <strong>for</strong>
– slinga i ett bash-skript.
med samma exempel börjar du med att skapa och öppna en bash-skriptfil med en textredigerare som Nano:
sudo nano rename_files.sh
Läs mer om hur du använder bash-skript för att hantera filer och kataloger i Linux.
Lägg till följande rader i skriptet:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
i manuset ovan:
- den första raden instruerar skriptet att söka efter alla filer i den aktuella katalogen som slutar med .txt.
- den andra raden använder kommandot
mv
på varje fil som hittas för att ersätta .Txt förlängning med .pdf. - den tredje raden avslutar loopsegmentet.
tryck på Ctrl + X, skriv sedan Y och tryck på Enter för att spara ändringarna i skriptet och avsluta.
använd kommandot sh
för att köra skriptet:
sh rename_files.sh
Byt namn på fil med kommandot Byt namn
kommandot rename
används för att byta namn på flera filer eller kataloger i Linux. Det erbjuder fler funktioner än kommandot mv
men kan vara mer utmanande att använda eftersom det kräver grundläggande kunskaper om Perl-uttryck.
så här installerar du kommandot Byt namn
på många Linux-distributioner är kommandot rename
inte tillgängligt som standard. Om ditt system saknar kommandot rename
, installera det med:
- för Ubuntu och Debian, använd
sudo apt install rename
- för CentOS och Fedora, använd
sudo yum install prename
- för Arch Linux, använd
sudo pacman -S
Byt namn på
Byt namn på kommandosyntax och alternativ
det finns tre typer av Perl-reguljära uttryck: match, substitut och översätt. Kommandot rename
använder Ersätt och översätt uttryck för att ändra fil-och katalognamn.
Ersättningsuttryck ersätter en del av filnamnet med en annan sträng. De använder följande syntax:
rename 's///'
med denna syntax byter kommandot namn på filen genom att ersätta den första förekomsten av filnamnselementet med ersättningen. I kommandot ovan:
-
rename
: anropar kommandot Byt namn. -
: ger ett valfritt argument som ändrar hur kommandot körs.
-
s
: anger ett ersättningsuttryck. -
: anger den del av filnamnet som du vill ersätta.
-
: anger en ersättning för den del av det aktuella filnamnet.
-
: definierar filen du vill byta namn på.
ett översättningsuttryck översätter en sträng av tecken till en annan, tecken för tecken. Denna typ av uttryck använder följande syntax:
rename 'y///'
ett exempel på ett rename
– kommando med hjälp av ett översättningsuttryck:
rename 'y/abc/xyz/'
i det här exemplet ersätts varje A-tecken i filnamnet med ett x, varje b med ett y och varje c med ett z.
kommandot Byt namn använder följande alternativ:
-
-a
: ersätter alla förekomster av filnamnselementet istället för bara den första. -
-f
: Tvingar en överskrivning av befintliga filer. -
-h
: visar hjälptexten. -
-i
: visar en prompt innan du skriver över befintliga filer. -
-l
: ersätter den sista förekomsten av filnamnselementet istället för den första. -
-n
: utför en torr körning, vilket gör inga permanenta förändringar. Bäst kombinerat med verbose-utgången (-v
). -
-s
: byter namn på målet istället för den symboliska länken. -
-v
: visar en utförlig version av utgången. -
-V
: visar kommandoversionen.
Byt namn på Kommandoexempel
1. Ändra filtillägg
återgå till vårt senaste exempel, för att ändra filtillägget från .txt till .pdf, använd:
rename -v 's/.txt/.pdf/' *.txt
2. Ersätta en del av ett filnamn
ersätta en annan del av filnamnet följer samma syntax. För att byta namn på exempel1.txt, exempel2.txt, och exempel3.txt till test1.txt, test2.txt och text3.txt, använd:
rename -v 's/example/test/' *.txt
3. Ta bort en del av ett filnamn
alternativet rename
låter dig också ta bort en del av filnamnet genom att utelämna ersättningsdelen av uttrycket. Till exempel, om vi vill förkorta exempel till ex:
rename -v 's/ample//' *.txt
4. Byt namn på Filer med liknande namn
en annan användning för alternativet rename
är att byta namn på filer med liknande namn. Till exempel, om vi vill byta namn på filer med exempel och prov i deras namn för att testa:
rename -v 's/(ex|s)ample/test/' *.txt
5. Byt namn på filer tecken för tecken
kommandot rename
låter dig också använda översätt uttryck för att byta namn på filer på tecken för tecken. Om du till exempel vill byta namn på flera filer med namnet exempelfil genom att ersätta det tomma utrymmet med ett understreck (_):
rename -v 'y/ /\_/' *.txt
6. Konvertera små bokstäver
för att konvertera små bokstäver i filnamn till stora bokstäver, Använd:
rename -v 'y/a-z/A-Z/' *.txt
7. Konvertera stora bokstäver
omvänden fungerar också om vi byter ordning på stora och små bokstäver i uttrycket:
rename -v 'y/A-Z/a-z/' *.TXT
var försiktig när du ändrar teckenfallet, eftersom detta också ändrar filtillägget.
slutsats
efter att ha läst denna handledning bör du kunna byta namn på filer med kommandona mv
och rename
i Linux.
Läs mer om hur du använder Linux-kommandon i vårt Linux-Kommandoblad.