Inleiding
Linux biedt verschillende opties voor het hernoemen van bestanden, waaronder het gebruik van de GUI en meerdere dedicated terminal commando ‘ s. Dit maakt het relatief eenvoudig om afzonderlijke bestanden te hernoemen, maar het kan een uitdaging zijn om meerdere bestanden tegelijk te hernoemen.
in deze tutorial zullen we verschillende commando ‘ s doornemen die je in de Linux terminal kunt gebruiken om bestanden in Linux te hernoemen.
Vereisten
- een systeem met Een Linux-distributie
- Een account met sudo-rechten
- Toegang tot het venster terminal/command line
- Toegang tot een tekst-editor, zoals Vim of Nano
Naam wijzigen van Bestanden met het mv Commando
De Linux mv
(verplaatsen) – opdracht wordt gebruikt om de bestanden en mappen van de terminal. Het gebruikt de volgende syntaxis:
mv
als u een map als doel opgeeft bij gebruik van het commando mv
, wordt het bronbestand naar die map verplaatst. Als de bestemming een andere bestandsnaam is, hernoemt het commando mv
het bronbestand naar die naam.
opmerking: Lees meer over het gebruik van het MV commando in onze gids voor het verplaatsen van directory ‘ s in Linux.
een enkel bestand hernoemen met het MV Commando
met het commando mv
met de standaard syntaxis kunt u een enkel bestand hernoemen:
mv
bijvoorbeeld, als we voorbeeld1 willen hernoemen.txt in voorbeeld2.txt, zouden we gebruiken:
mv example1.txt example2.txt
omdat er geen uitvoer is als het commando succesvol is, gebruiken we het ls
commando om te controleren of de naam veranderd is:
ls -l
hernoem meerdere bestanden met het MV Commando
op zichzelf, hernoemt het commando mv
een enkel bestand. Door het te combineren met andere commando ‘ s kunt u echter meerdere bestanden tegelijkertijd hernoemen.
een methode is om de opdracht find
te gebruiken om meerdere bestanden met een vergelijkbare naam te selecteren en vervolgens de opdracht mv
te gebruiken om ze te hernoemen:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
met behulp van deze syntaxis definieert het find
commando een element van de huidige bestandsnaam als de zoekparameter. Vervolgens voert -exec
het commando mv
uit op alle bestanden die overeenkomen met de zoekopdracht, waarbij de huidige bestandsnamen worden gewijzigd in de nieuwe.
bijvoorbeeld, als we voorbeeld1 hebben.txt, voorbeeld 2.txt, en voorbeeld3.txt en willen de extensie te wijzigen .pdf:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
een andere methode is om het mv
commando te gebruiken als onderdeel van een <strong>for</strong>
lus in een bash script.
in hetzelfde voorbeeld start u met het maken en openen van een bash scriptbestand met behulp van een teksteditor zoals Nano:
sudo nano rename_files.sh
opmerking: meer informatie over het gebruik van bash scripts om bestanden en mappen in Linux te beheren.
voeg de volgende regels toe aan het script:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
In het bovenstaande script:
- de eerste regel instrueert het script om te zoeken naar alle bestanden in de huidige map die eindigt met .txt.
- de tweede regel gebruikt het
mv
commando op elk gevonden bestand om het te vervangen .txt extensie met .pdf. - de derde regel eindigt het lussegment.
druk op Ctrl + X, typ vervolgens Y en druk op Enter om de wijzigingen in het script op te slaan en af te sluiten.
gebruik de opdracht sh
om het script uit te voeren:
sh rename_files.sh
bestand hernoemen met het commando hernoemen
het commando rename
wordt gebruikt om meerdere bestanden of mappen in Linux te hernoemen. Het biedt meer functies dan het mv
Commando, maar kan uitdagender zijn om te gebruiken omdat het basiskennis van Perl expressies vereist.
Hoe installeer ik de opdracht hernoemen
op veel Linux distributies is de opdracht rename
standaard niet beschikbaar. Als uw systeem het rename
Commando mist, installeer het dan met:
- Voor Ubuntu en Debian, gebruik
sudo apt install rename
- voor CentOS en Fedora, gebruik
sudo yum install prename
- voor Arch Linux, gebruik
sudo pacman -S
hernoem
hernoem Commando syntaxis en opties
er zijn drie soorten Perl reguliere expressies: match, substitute en translate. Het rename
commando gebruikt substitute en translate expressions om bestandsnamen en mapnamen te wijzigen.
Substitute expressions vervang een deel van de bestandsnaam door een andere tekenreeks. Ze gebruiken de volgende syntaxis:
rename 's///'
met deze syntaxis hernoemt het commando het bestand door het eerste voorkomen van het bestandsnaamelement te vervangen door de vervanging. In het bovenstaande commando:
-
rename
: roept het commando hernoemen aan. -
: biedt een optioneel argument dat de manier waarop het commando wordt uitgevoerd verandert.
-
s
: geeft een vervangende uitdrukking aan. -
: specificeert het deel van de bestandsnaam dat u wilt vervangen.
-
: specificeert een vervanging voor het deel van de huidige bestandsnaam.
-
: definieert het bestand dat u wilt hernoemen.
een vertaal uitdrukking vertaalt een tekenreeks naar een andere, teken voor teken. Dit type expressie gebruikt de volgende syntaxis:
rename 'y///'
een voorbeeld van een rename
– opdracht met een vertaal-expressie:
rename 'y/abc/xyz/'
in dit voorbeeld wordt elk a-teken in de bestandsnaam vervangen door een x, elke b door een y en elke c door een z.
het commando hernoemen gebruikt de volgende opties:
-
-a
: vervangt alle exemplaren van het bestandsnaam element in plaats van alleen de eerste. -
-f
: Forceert het overschrijven van bestaande bestanden. -
-h
: hier wordt de hulptekst weergegeven. -
-i
: geeft een prompt weer voor het overschrijven van bestaande bestanden. -
-l
: vervangt het laatste voorkomen van het bestandsnaamelement in plaats van het eerste. -
-n
: voert een dry run, het maken van geen permanente wijzigingen. Het beste gecombineerd met de uitgebreide uitvoer (-v
). -
-s
: hernoemt het doel in plaats van de symbolische koppeling. -
-v
: toont een uitgebreide versie van de uitvoer. -
-V
: toont de opdrachtversie.
Opdrachtvoorbeelden hernoemen
1. Verander bestandsextensie
terug naar ons laatste voorbeeld, om de bestandsextensie van te wijzigen .txt to .pdf, gebruik:
rename -v 's/.txt/.pdf/' *.txt
2. Het vervangen van een deel van een bestandsnaam
het vervangen van een ander deel van de bestandsnaam volgt dezelfde syntaxis. Om voorbeeld1 te hernoemen.txt, voorbeeld 2.txt, en voorbeeld3.txt aan test1.txt, test2.txt, en text3.txt, gebruik:
rename -v 's/example/test/' *.txt
3. Een deel van een bestandsnaam verwijderen
met de optie rename
kunt u ook een deel van de bestandsnaam verwijderen door het vervangende deel van de expressie weg te laten. Bijvoorbeeld, als we willen verkorten voorbeeld in ex:
rename -v 's/ample//' *.txt
4. Bestanden met vergelijkbare namen hernoemen
een ander gebruik voor de optie rename
is het hernoemen van bestanden met vergelijkbare namen. Bijvoorbeeld, als we bestanden willen hernoemen met voorbeeld en voorbeeld in hun naam om te testen:
rename -v 's/(ex|s)ample/test/' *.txt
5. Bestanden karakter-per-teken
met het commando rename
kunt u ook translate expressions gebruiken om bestanden te hernoemen op een karakter-per-teken basis. Bijvoorbeeld, als u wilt hernoemen meerdere bestanden met de naam voorbeeld bestand door het vervangen van de lege ruimte met een underscore (_):
rename -v 'y/ /\_/' *.txt
6. Converteer kleine letters
om kleine letters in bestandsnamen om te zetten in hoofdletters, gebruik:
rename -v 'y/a-z/A-Z/' *.txt
7. Converteer hoofdletters
het omgekeerde werkt ook als we de volgorde van de hoofdletters en kleine letters in de expressie wisselen:
rename -v 'y/A-Z/a-z/' *.TXT
let op: wees voorzichtig bij het veranderen van het karakter geval, want dit verandert ook de bestandsextensie.
conclusie
na het lezen van deze tutorial, zou je in staat moeten zijn om bestanden te hernoemen met behulp van de mv
en rename
commando ‘ s in Linux.
Lees meer over het gebruik van Linux commando ’s in onze Linux commando’ s Cheat Sheet.