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.

hur man byter 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
byta namn på en enda fil med kommandot MV

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"' \;
byta namn på flera filer med kommandona Sök och mv

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
byta namn på flera filer med ett bash-skript

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
använda kommandot Byt namn för att ersätta filtillägget

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
byta namn på flera filer med kommandot Byt namn

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
ta bort en del av filnamnet med kommandot Byt namn

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
byta namn på flera filer med liknande namn med kommandot Byt namn

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
ta bort tomma mellanslag från filnamn med kommandot Byt namn

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
konvertera filnamn från gemener till versaler med kommandot Byt namn

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
konvertera filnamn från versaler till gemener med kommandot Byt namn

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.

Lämna ett svar

Din e-postadress kommer inte publiceras.