Att byta namn på filer är en av de mest grundläggande uppgifterna du ofta behöver utföra på ett Linux-system. Du kan byta namn på filer med en GUI-filhanterare eller via kommandoradsterminalen.
Att byta namn på en enskild fil är enkelt, men att byta namn på flera filer samtidigt kan vara en utmaning, särskilt för användare som är nya inom Linux .
I den här självstudien visar vi dig hur du använder kommandona mv
och rename
för att byta namn på filer och kataloger.
Byt namn på filer med kommandot mv #
mv
-kommandot (kort förflyttning) används för att byta namn på eller flytta filer från en plats till en annan. Syntaxen för kommandot mv
är följande:
source
kan vara en eller flera filer eller kataloger och destination
kan vara en enda fil eller katalog.
- Om du anger flera filer som
source
måstedestination
vara en katalog. I det här fallet flyttassource
-filerna till målkatalogen. - Om du anger en enda fil som
source
, ochdestination
-målet är en befintlig katalog, sedan flyttas filen till den angivna katalogen. - För att byta namn på en fil måste du ange en enda fil som
source
och en enda fil somdestination
mål.
Till exempel för att byt namn på filen file1.txt
som file2.txt
du skulle köra:
Byta namn på flera filer med kommandot mv #
mv
kan bara byta namn på en fil åt gången, men den kan användas tillsammans med andra kommandon, t.ex. som find
eller inuti bash for
eller while
loopar för att byta namn på flera filer.
Följande exempel visar hur du använder Bash for loop för att byta namn på alla .html
filer i den aktuella katalogen genom att ändra .html
tillägget till .php
.
Låt oss analysera koden rad för rad:
- Den första raden skapar en
for
loop och iterates genom en lista över alla filer som kantas med.html
. - Den andra raden gäller för varje objekt i listan och flyttar filen till en ny ersätter
.html
med.php
. Delen${file%.html}
använder skalparameterutvidgningen för att ta bort.html
-delen från filnamnet. -
done
anger slutet på slingans segment.
Här är ett exempel som använder mv
i kombination med find
för att uppnå samma som ovan:
find
-kommandot skickar alla filer som slutar med .html
i den aktuella katalogen till mv
en efter en med -exec
alternativ. Strängen {}
är namnet på den fil som för närvarande behandlas.
Som du kan se från exemplen ovan, byter du namn på flera filer med mv
-kommandot är inte en lätt uppgift eftersom det kräver goda kunskaper om Bash-skript.
Byta namn på filer med byta namn på kommando #
rename
-kommandot används för att byta namn på flera filer. Det här kommandot är mer avancerat än mv
eftersom det kräver grundläggande kunskaper om reguljära uttryck.
Det finns två versioner av rename
kommando med olika syntax. I denna handledning använder vi Perl-versionen av kommandot rename
. Om du inte har den här versionen installerad på ditt system kan du enkelt installera den med distributionens pakethanterare.
-
Installera
rename
på Ubuntu och Debian -
Installera
rename
på CentOS och Fedora -
Installera
rename
på Arch Linux
Syntaxen för kommandot rename
är som följer:
Kommandot rename
byter namn till files
enligt angiven perlexpr
reguljärt uttryck. Du kan läsa mer om perl reguljära uttryck här.
Följande exempel ändrar alla filer med tillägget .html
till .php
:
Du kan använda alternativet -n
för att skriva ut namn på filer som ska döpas om utan att byta namn på dem.
Utdata ser ut så här:
Som standard skriver kommandot rename
inte över befintliga filer. Skicka alternativet -f
så att befintliga filer kan skrivas över:
Nedan följer några fler vanliga exempel på hur du använder kommandot rename
:
Slutsats #
Vi har visat dig hur du använder mv
och rename
kommandon för att byta namn på filer.
Det finns också andra kommandon för att byta namn på filer i Linux, till exempel mmv
. Nya Linux-användare som skräms av kommandoraden kan använda GUI-batchnamnverktyg som Métamorphose.