Adam Automator

är du ny på Linux-operativsystemet? Om så är fallet kan vanliga uppgifter som att byta namn på filer och mappar vara annorlunda än vad du är van vid. Men oroa dig inte. Konceptet att byta namn på filer i Linux liknar hur det görs i andra operativsystem.

i den här handledningen lär du dig många sätt att byta namn på enstaka och flera filer i Linux, både via GUI och körkommandon i en terminal.

Låt oss komma igång!

Innehållsförteckning

förutsättningar

för att följa med i denna handledning, se till att du har följande:

  • denna handledning använder Ubuntu 18.04 LTS, men andra Linux-distros fungerar.
  • ett konto med sudo/administratörsåtkomst.

byta namn på Filer med filhanteraren

om du är van vid att hantera filer via GUI, låt oss börja denna handledning för att byta namn på filer med en filhanterare. GUI – filhanterare är snygga eftersom du kan se filerna i vanlig syn. En av de filhanterare som finns tillgängliga i Linux är GNOME tidigare filhanterare, Nautilus. Denna handledning visar att byta namn på filer med hjälp av Nautilus-filhanteraren.

Linuxs andra filhanterare är Konqueror, Dolphin, Krusader, Thunar, Nemo file manager och Sunflower file manager. Dessa filhanterare utför samma uppgift men att byta namn på filer eller kataloger kan vara något annorlunda.

starta din terminal och kör sedan kommandot nedan för att installera Nautilus (install nautilus) med pakethanteraren apt om du inte har den ännu på din maskin. Kommandot sudo höjer kommandot med sudo / administratörsrättigheter.

sudo apt install nautilus

byta namn på en enda fil

byta namn på en enda fil i Nautilus tar bara några klick, som i Windows File Explorer.

för att byta namn på en enda fil, öppna Nautilus, högerklicka på filen du vill byta namn på och välj Byt namn, som visas nedan.

detta exempel fokuserar på att byta namn på filer, men processen är densamma för att byta namn på både filer och kataloger.

byta namn på en enda fil
byta namn på en enda fil

Skriv nu det nya filnamnet för att ersätta det ursprungliga filnamnet, tryck på Enter eller klicka på Byt namn, och det är det.

Ange nytt filnamn
Ange nytt filnamn

byta namn på flera filer med Nautilus File Manager

liksom Windows ger Ubuntu dig fler alternativ för hur du vill byta namn på flera filer samtidigt.

för att byta namn på flera filer, Välj alla filer du vill byta namn på, högerklicka på någon av dem och välj Byt namn. Ett popup-fönster visas där du kan välja hur du vill byta namn på de filer du valt.

Byta Namn På Flera Filer Med Nautilus.
Byta Namn På Flera Filer Med Nautilus.

nedan finns det två alternativ att välja mellan beroende på hur du vill byta namn på de valda filerna.

  • Byt namn med en mall – det här låter dig byta namn på filer i steg.
  • Sök och ersätt text-låter dig hitta och ersätta vissa texter i filnamn.

byta namn på Filer med en mall

om du vill byta namn på filer med en mall väljer du alternativet Byt namn med en mall.

ange nu ersättningsnamnet i det tomma fältet för att byta namn på filer med en mall och klicka på +Lägg till-knappen och välj från mallarna. För den här handledningen väljer du den första (1,2,3,4) och klickar på Byt namn. Det här alternativet lägger till ökande nummer till varje fil efter ersättningsfilnamnet (Text1, Text2,…).

byta namn på Filer med en mall
byta namn på Filer med en mall

Lägg märke till att filnamnen ändras till Text, följt av ökande nummer.

verifiera filnamn ändrade till "Text" med ökande Num
verifiera filnamn ändrade till ”Text” med ökande Num

hitta och ersätta ord i filnamnen

om du vill byta namn på flera filer med ett specifikt filnamn väljer du alternativet Sök och ersätt text.

ange texten i det befintliga textfältet och ersättningstexten i fältet Ersätt med och klicka sedan på Byt namn för att ersätta texten. Det här alternativet hittar och ersätter vissa texter i filnamn.

ersätta texter i filnamn
ersätta texter i filnamn

nu kan du se nedan att du har ersatt ordet ”Text” med ”fil” i varje filnamn.

verifiera ordet "Text" ersattes med ordet " fil "på varje fil
verifiera ordet ”Text” ersattes med ordet ”fil” på varje fil

byta namn på Filer med MV-kommandot

om körkommandon är din sak istället för att navigera i ett GUI, Förbered dig på att lära dig att byta namn på filer i en terminal. Att byta namn på filer i Linux-terminalen liknar att göra det i andra kommandoradsmiljöer, till exempel PowerShell. Du kör kommandona för att byta namn på det ursprungliga filnamnet med målfilnamnet, och det är det.

det finns två scenarier för att byta namn på en fil. Den första byter namn på en fil från arbetskatalogen, och den andra är genom att ange hela sökvägen. Ta en titt på kommandosyntaxen mv nedan för att byta namn på en fil, där source är det ursprungliga namnet och destination är ersättningsnamnet.

# Rename a file or directory in the working directorymv <source> <destination># Rename a file by specifying the full pathmv <~/mydir/source> <~/mydir/destination>

byta namn på en enda fil med MV-kommandot

medan MV-kommandosyntaxen fortfarande är fräsch i ditt sinne, låt oss försöka byta namn på en enda fil.

för att visa hur man byter namn på en enda fil och katalog:

1. Starta din terminal och kör sedan serien med kommandon nedan för att skapa en katalog och två textfiler.

# Create a directory named 'test'mkdir test # Change directory to ~/testcd test # Create text files named 'file1.txt' and file2.txttouch file1.txt file2.txt 

2. Kör sedan kommandot ls för att lista filerna i arbetskatalogen. Nedan kan du se den filen1.txt och file2.txt finns i katalogen ~ / test.

lista filer i arbetskatalogen
lista filer i arbetskatalogen

3. Kör någon av kommandona mv nedan för att byta namn på file1.txt som file10.txt.

# Rename a file in the working directorymv file1.txt file10.txt# Rename a file by specifying the full pathmv ~/test/file1.txt ~/test/file10.txt

att byta namn på en katalog är detsamma som att byta namn på en fil, så här: mv ~/test ~/demo. Symbolen ~ anger hemkatalogen.

4. Slutligen kör kommandot ls för att lista filerna i arbetskatalogen.

nedan kan du se den filen1.txt har nu bytt namn till file10.txt.

bekräftar fil1.txt döps om till file10.Txt
bekräftande Fil1.txt döps om till file10.txt

byta namn på flera filer med en For Loop

om du är för upptagen med andra uppgifter till hands och vill byta namn på alla filer på en gång måste du använda ett for loop-uttalande som det nedan.

kopiera koden nedan som den är, klistra in den i din terminal och tryck på Enter. Koden nedan skannar varje textfil i arbetskatalogen och byter namn på filerna med ”fil” följt av ett ökande nummer.

# Declares variable with value set to 1i=1 # Scans each text file in the working directoryfor file in *.txt; # Iterate the command below until all files are scanneddo # Renames each file with "File" followed by incrementing number ($i)mv -- "$file" "File$i.txt" # Increments the variables current number value by 1 i=$((i+1)) done

att klistra in koden i din terminal fungerar bra, men som god praxis är det bättre om du skapar en skriptfil som ska köras istället.

nedan kan du se i åtgärd hur koden byter namn på alla filer.

byta namn på Filer med en för Loop
byta namn på Filer med en för Loop

byta namn på filer i Linux med rename Utility

om du byter namn på en enda fil i din dagliga rutin, räcker kommandot mv. Men kanske du siktar på att byta namn på flera filer med samma mönster på en gång? Till exempel byta namn på filer som börjar med ett visst ord (fil). Installera i så fall verktyget Byt namn istället.

rename-verktyget byter namn på flera filer, ändrar filnamnformat och skriver över filer.

för att installera rename-verktyget, kör någon av kommandona nedan beroende på vilken Linux-distro du arbetar med.

# Install rename utility with the apt package manager for Ubuntu, Debian, and Linux Mintsudo apt install rename# Install rename utility with the dnf package manager for CentOS, Fedora, and Red Hatsudo dnf install prename# Install rename utility with the pacman package manager for Arch Linux / Manjaro Linuxsudo pacman -S perl-rename

du kan se under kommandosyntaxen rename.

rename <options> <perlexpr> <files>

byta namn på flera filer

med kommandosyntaxen rename i åtanke kan du nu byta namn på filer som har samma mönster. Vad som är bra med kommandot rename är att du inte behöver deklarera en loop-funktion för att byta namn på flera filer som du gjorde i avsnittet ”Byta namn på flera filer med en för Loop”.

kanske vill du byta namn på filer med vissa ord på dem. Om så är fallet, ta en titt på det reguljära uttrycket Perl ('s/file/myfile/') i exempelkommandot nedan. Perl reguljära uttryck definierar ett Strängmönster baserat på Perl-programmeringsspråket.

för att undvika att felaktigt byta namn på andra filer, lista alla berörda filer innan du byter namn på dem genom att lägga till alternativet -n, som visas nedan.

rename -n 's/file/myfile/' *.txt
lista berörda filer innan du byter namn på
lista berörda filer innan du byter namn

kör nu någon av kommandona rename nedan för att ersätta ordet file med myfile i varje textfils namn i arbetskatalogen eller katalogen ~/test/*.txt.

i Perl-uttrycket ('s/file/myfile/') betecknar s substitution, vilket innebär att du byter namn på filer. Lägg märke till alternativet -v läggs till för att returnera vilka filer kommandot bytt namn på.

# Replace 'file' with 'myfile' in each file's name in the working directoryrename -v 's/file/myfile/' *.txt# Replace 'file' with 'myfile' in each file's name in the ~/test directoryrename -v 's/file/myfile/' ~/test/*.txt

nedan kan du se att varje ”fil” – ord i textfilerna byter namn till ”myfile.”

byta namn på en fil med kommandot Byt namn
byta namn på en fil med kommandot rename

om du föredrar att byta namn på alla filer istället, ta bort filtillägget när du anger filsökvägen, till exempel, rename -v 's/file/myfile/' ~/test/*

ändra filtillägg

förutom filnamn byter kommandot rename också filtillägg. Du kanske har skapat filer med fel filtillägg. I så fall anger du filändelsen som ska ändras i ett Perl-uttryck när du kör kommandot rename.

Kör kommandotrename nedan för att ändra alla filers (*) förlängning från .txt till .html i katalogen ~/test. Symbolen $ i Perl-uttrycket matchar slutet på en sträng (.txt) till varje filnamn, så kommandot ändrar bara .txt filtillägg. Och som med att byta namn på flera filer, Lägg till alternativet -v för att lista varje ändring som kommandot gör.

rename -v 's/.txt$/.html/' *.txt

för att ta bort alla filtillägg istället, ta bort ersättningssträngen i Perl-uttrycket, så här: rename -v 's/.txt$//' *.txt

som du ser på bilden nedan, de .Txt-tillägg ändras till .html

ändra filtillägg från .txt till .html
ändra filtillägg från .txt till .html

ändra filnamn till versaler och gemener

istället för felaktiga filtillägg kan du hantera filnamn i gemener och vice versa. Kanske försöker du hitta en fil specifikt i stora bokstäver, utan att veta att filnamnet är i små bokstäver.

Linux är skiftlägeskänsligt, så låt oss se till att du har varje filnamns brevfall rätt. Brevfall är i grunden skillnaden mellan texter mellan små och stora bokstäver.

kör någon av kommandonarename nedan för att ändra alla små bokstäver (a-z) filnamn i arbetskatalogen (*) till stora bokstäver (A-Z) och vice versa.

# Change filename from lowercase to uppercaserename -v 'y/a-z/A-Z/' *# Change filename from uppercase to lowercaserename -v 'y/A-Z/a-z/' *

du kan se nedan båda resultaten av att ändra ett filnamnsbokstäver.

ändra filnamn från gemener till versaler och Vice Versa
ändra filnamn från gemener till versaler och Vice Versa

byta ut och ta bort mellanslag i filnamn

som ett filnamns brevfall kan du ha problem med att hitta filer om de har mellanslag i sina filnamn. Låt oss fixa det genom att antingen ersätta mellanslag med ett tecken eller ta bort mellanslag helt och hållet.

Kör kommandotrename nedan för att ersätta mellanslag i alla filnamn med ett understreck (_) i arbetskatalogen. Eftersom understrykning är en metakaraktär, fly den med ett backslash (\_) för att förklara understrykningen bokstavligen. Metatecken är specialtecken med speciella betydelser i ett datorprogram.

Lägg märke till g i Perl-uttrycket berättar kommandot att ersätta alla matchningar (mellanslag), och inte bara den första.

rename -v 's/ /\_/g' *

nedan kan du se att kommandot ersatte alla mellanslag med understreck.

ersätta mellanslag med understreck i ett filnamn
ersätta mellanslag med understreck i ett filnamn

för att ta bort alla mellanslag i ett filnamn istället för att fylla dem med ett tecken, kör kommandot nedan.

i Perl-uttrycket nedan matchar asterisken efter det tomma utrymmet (/ *) alla förekomster av mellanslag i ett filnamn och inte bara den första. Ersättningstecknet är tomt (//), så kommandot rename tar bort alla (g) mellanslag.

rename -v "s/ *//g" *

nu kan du se nedan att alla mellanslag tas bort från varje filnamn.

Ta Bort Alla mellanslag i filnamn
Ta Bort Alla mellanslag i filnamn

kapitalisera den första bokstaven i varje ord i ett filnamn

om du föredrar att behålla mellanslag och kapitalisera den första bokstaven i varje ord i ett filnamn istället behöver du ett mer komplext Perl-uttryck. Ta en titt på exempelkommandot nedan.

Perl-uttrycket nedan matchar alla enskilda tecken (\w) i en ordgräns (\b) så länge tecknet inte är en period eller apostrof (?<!). Kommandot rename översätter sedan den bokstaven till stora bokstäver (u$&).

rename -v 's/(?<!)\b\w*/\u$&/g' *

nedan kan du se att varje ord i filnamnen börjar med en stor bokstav medan filtilläggen lämnas orörda.

kapitalisera första bokstaven i varje ord i filnamn
kapitalisera första bokstaven i varje ord i filnamn

slutsats

under hela denna handledning har du lärt dig många sätt att byta namn på Linux-filer via GUI och kommandoradsterminal. Du har nu en gedigen förståelse för hur man manipulerar namn för enstaka och flera filer samtidigt.

varför inte lära sig Linux shell scripting, och skapa ett skript för att automatisera byta namn på filer i Linux?

Lämna ett svar

Din e-postadress kommer inte publiceras.