Android

Hur man byter namn på filer och kataloger i Linux

Linux på svenska - 1 - Kom igång

Linux på svenska - 1 - Kom igång

Innehållsförteckning:

Anonim

Byt namn på filer och kataloger är en av de mest grundläggande uppgifterna du ofta behöver utföra på ett Linux-system.

Att byta namn på en enda fil är enkelt, men att byta namn på flera filer på en gång kan vara en utmaning, särskilt för användare som är nya i Linux. Du kan byta namn på filer med en GUI-filhanterare eller via kommandoradsterminalen.

I den här tutorialen kommer vi att visa dig hur du använder mv och rename kommandona för att byta namn på filer och kataloger.

Byt namn på filer med mv Command

Kommandot mv (kort från flytt) används för att byta namn på eller flytta filer från en plats till en annan. Syntaxen för mv kommandot är som följer:

mv source destination

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åste destination vara en katalog. I det här fallet flyttas källfilerna till målkatalogen. Om du anger en enda fil som source och destination är en befintlig katalog flyttas filen till den angivna katalogen. För att byta namn på en fil måste du ange en enstaka fil som source och en fil som destination .

För att till exempel byta namn på filen file1.txt till file2.txt skulle du köra:

mv file1.txt file2.txt

Byt namn på flera filer med mv Command

mv kommandot kan bara byta namn på en fil åt gången, men det kan användas tillsammans med andra kommandon, t.ex. find eller inuti bash för eller medan loopar för att byta namn på flera filer.

Följande exempel visar hur man använder Bash för loop för att byta namn på alla .html filer i den aktuella katalogen genom att ändra .html tillägget till .php .

for f in *.html; do mv -- "$f" "${f%.html}.php" done

Låt oss analysera koden rad för rad:

  • Den första raden skapar en för 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 som ersätter .html med .php . Delen ${file%.html} använder utvidgningen av .html att ta bort .html delen från filnamnet.done anger slutet på loop-segmentet.

Vi kan också använda mv kommandot i kombination med find att uppnå detsamma som ovan.

find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;

-exec alla filer som slutar med .html i den aktuella katalogen till mv kommandot en efter en med hjälp av -exec omkopplaren. Strängen {} är namnet på den fil som för närvarande behandlas.

Som du kan se av exemplen ovan är det inte en lätt uppgift att byta namn på flera filer med mv kommandot eftersom det kräver god kunskap om Bash-skript.

Byt namn på filer med namn på kommando

Kommandot rename används för att byta namn på flera filer. Detta kommando är mer avancerad än mv eftersom det kräver viss grundläggande kunskaper om vanliga uttryck.

Det finns två versioner av rename nytt rename med olika syntax. I den här tutorialen kommer vi att använda perl-versionen av namnet på nytt rename . Om du inte har den här versionen installerad på ditt system kan du enkelt installera den med hjälp av pakethanteraren för din distribution.

  • Installera namn på Ubuntu och Debian

    sudo apt install rename

    Installera namn på CentOS och Fedora

    sudo yum install prename

    Installera namn på Arch Linux

    yay perl-rename ## or yaourt -S perl-rename

Syntaxen för rename kommandot är som följer:

rename perlexpr files

rename kommandot byter namn på alla files enligt det angivna perlexpr reguljära uttrycket. Du kan om perl-reguljära uttryck här.

Till exempel kommer följande kommando att ändra alla filer med tillägget .html till .php :

rename 's/.html/.php/' *.html

Du kan använda argumentet -n att skriva ut namn på filer som ska bytas om utan att byta namn på dem.

rename -n 's/.html/.php/' *.html

Utgången ser ut så här:

rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)

Som standard kommer inte namnet på kommandot att skriva över befintliga filer. Vidarebefordra -f argumentet så att befintliga filer kan skrivas över.

rename -f 's/.html/.php/' *.html

Nedan följer några vanliga exempel på hur man använder namn på kommandot:

  • Byt ut mellanslag i filnamn med understreck

    rename 'y/ /_/' *

    Konvertera filnamn till små bokstäver

    rename 'y/AZ/az/' *

    Konvertera filnamn till versaler

    rename 'y/az/AZ/' *

Slutsats

Nu bör du ha en god förståelse för hur du använder kommandona mv och rename att byta namn på filer. Naturligtvis finns det andra kommandon för att byta namn på filer i Linux, t.ex. mmv . Nya Linux-användare som skrämmas av kommandoraden kan använda GUI-batchnamnverktyg som Métamorphose.

byta namn på mv-terminal