ä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
- byta namn på Filer med filhanteraren
- byta namn på en enda fil
- byta namn på flera filer med Nautilus File Manager
- byta namn på Filer med en mall
- hitta och ersätta ord i filnamnen
- byta namn på Filer med MV-kommandot
- byta namn på en enda fil med MV-kommandot
- byta namn på flera filer med en For Loop
- byta namn på filer i Linux med rename Utility
- byta namn på flera filer
- ändra filtillägg
- ändra filnamn till versaler och gemener
- byta ut och ta bort mellanslag i filnamn
- kapitalisera den första bokstaven i varje ord i ett filnamn
- slutsats
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.
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.
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.
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,…).
Lägg märke till att filnamnen ändras till Text, följt av ökande nummer.
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.
nu kan du se nedan att du har ersatt ordet ”Text” med ”fil” i varje filnamn.
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.
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.
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 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
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.”
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 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.
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.
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.
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.
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?