het hernoemen van bestanden op Linux systemen wordt meestal afgehandeld door het mv
(move) Commando. De syntaxis is slechts mv old.txt new.txt
. Simpel genoeg, maar wat als we meerdere bestanden die moeten worden hernoemd in een keer, zelfs honderden van hen? Het standaard MV hulpprogramma kan niet omgaan met het hernoemen van meer dan één bestand, tenzij we een beetje scripting doen. Er zijn ook andere hulpprogramma ‘ s die we kunnen installeren om het probleem op te lossen, zoals rename
en mmv
.
in deze gids laten we u zien hoe u het mv
commando en de rename
en mmv
tools gebruikt om meerdere bestanden op uw Linux distro te hernoemen. We zullen een aantal voorbeelden doornemen, zodat je de syntaxis kunt begrijpen en hoe je elke methode moet gebruiken.
in deze les leert u:
- hoe meerdere bestanden tegelijk te hernoemen met MV Commando
- hoe te installeren hernoemen op belangrijke Linux distro ‘s
- hoe mmv te installeren op belangrijke Linux distro’ s
- hoe mmv te gebruiken, door middel van commando voorbeelden
- hoe te gebruiken hernoemen, door middel van commando voorbeelden
Categorie | vereisten, conventies of softwareversie Gebruikt |
---|---|
systeem | elke Linux distributie |
Software | MV, hernoemen, mmv |
andere | bevoorrechte toegang tot uw Linux systeem als root of via het sudo Commando. |
conventies | # – vereist dat gegeven linux commando ’s worden uitgevoerd met root privileges, hetzij direct als root gebruiker, hetzij door gebruik van sudo Commando$ – vereist dat gegeven linux commando’ s worden uitgevoerd als een reguliere niet-bevoorrechte gebruiker |
hernoem meerdere bestanden tegelijk met het MV Commando
hernoem meerdere bestanden met het MV commando is makkelijker als je een beetje van Bash scripting Weet. Neem een kijkje op een aantal van de onderstaande voorbeelden om een aantal veel voorkomende toepassingen met deze methode te zien.
- het volgende commando zal een toevoegen .txt bestandsextensie naar alle bestanden in uw huidige werkmap.
$ for i in $( ls ); do mv $i $i.txt; done
- om een bestandsextensie uit alle bestanden te verwijderen, kunt u dit commando gebruiken.
$ for i in $( ls *.txt ); do mv $i ${i%.*}; done
- we kunnen ook de extensie van elk bestand wijzigen. Het volgende commando zal alle bestanden te veranderen met de .log extensie op .txt.
$ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
- u kunt ook de opdracht Zoeken gebruiken, samen met de optie
-exec
of de opdracht xargs om meerdere bestanden tegelijk te hernoemen. Dit commando zal toevoegen .bak om elk bestand dat begint met het patroon “bestand”.$ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
- dit commando gebruikt find en de
-exec
optie om “_backup” toe te voegen aan alle bestanden die eindigen op de .txt extensie.$ find . -name "*.txt" -exec mv {} {}_backup \;
- we kunnen ook xargs gebruiken om hetzelfde te doen. Dit commando zal standaardinvoer van het
ls
Commando accepteren, en vervolgens xargs gebruiken om “_backup” toe te voegen aan alle bestanden die eindigen op de .txt extensie.$ ls *.txt | xargs -I{} mv {} {}_backup
- om alle bestanden met de .txt in de huidige map om alleen kleine letters te hebben, zal dit commando het werk doen.
$ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done
het voordeel van deze methode is dat we geen extra Linux software nodig hebben – we gebruiken gewoon het native MV utility, en soms gekoppeld aan ls, find, of xargs. Echter, zoals we hebben gezien in deze voorbeelden, het kan nogal complex zijn om iets simpels te doen, zoals een paar bestanden hernoemen. Bekijk enkele van de andere methoden hieronder om wat meer handige opties die installatie vereisen te zien.
Install rename utility
in uw Linux distro is standaard rename
geïnstalleerd. Voor het geval dat het nog niet is geïnstalleerd, kunt u het juiste commando hieronder gebruiken om het te installeren via de package manager van uw systeem.
om hernoemen te installeren op Ubuntu, Debian en Linux Mint:
$ sudo apt install rename
om rename te installeren op CentOS, Fedora, AlmaLinux, en Red Hat:
$ sudo dnf install prename
rename installeren op Arch Linux en Manjaro:
$ sudo pacman -S perl-rename
hernoem Commando voorbeelden
het rename
Commando accepteert Perl expressie om de eigenlijke hernoeming uit te voeren. Als u al bekend bent met deze syntaxis, dan hernoemen zal zeer eenvoudig te gebruiken. Zo niet, maak je geen zorgen, we hebben een aantal voorbeelden hieronder die u zullen helpen om het onder de knie te krijgen.
hier hebben we enkele van de meest voorkomende scenario ‘ s samengesteld die u nodig zou hebben om meerdere bestanden tegelijk te hernoemen. Deze commando ‘ s gaan ervan uit dat de bestanden die u wilt hernoemen zich in uw huidige werk directory bevinden. U kunt altijd het pad naar andere mappen opgeven als u dat wilt.
er zijn een paar opties die u kunt gebruiken met rename
. De -n
optie zal u laten zien welke wijzigingen hernoemen gaat maken, zonder de wijzigingen daadwerkelijk aan te brengen. Dit helpt u ongewenste veranderingen te voorkomen. De -v
(uitgebreide) optie zal de namen afdrukken van bestanden die met succes zijn hernoemd.
- dit commando zal bestanden in hoofdletters hernoemen naar kleine letters.
$ rename 'y/A-Z/a-z/' *
of om kleine letters in hoofdletters om te zetten:
$ rename 'y/a-z/A-Z/' *
- gebruik de volgende syntaxis om de extensie van een aantal bestanden te wijzigen. Dit specifieke voorbeeld zal converteren .log bestanden naar .txt-bestanden.
$ rename 's/\.log$/\.txt/' *.log
- gebruik het volgende commando om de eerste letter van elke bestandsnaam te kapitaliseren.
$ rename 's/\b(\w)/\U/g' *
- voer dit commando uit om alle lege spaties uit bestandsnamen te verwijderen.
$ rename "s/ *//g" *
of, om spaties te vervangen door underscores:
$ rename 's/\s+/_/g' *
- om een bestandsextensie uit een aantal bestanden te verwijderen, gebruik je de volgende syntaxis. Dit voorbeeld verwijdert de .bak extensie.
$ rename 's/\.bak$//' *.bak
installeer mmv utility
u kunt het juiste commando hieronder gebruiken om mmv te installeren via de pakketbeheerder van uw systeem.
om mmv te installeren op Ubuntu, Debian en Linux Mint:
$ sudo apt install mmv
mmv installeren op CentOS, Fedora, AlmaLinux, en Red Hat:
$ sudo dnf install mmv
mmv installeren op Arch Linux en Manjaro:
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
MMV Commando voorbeelden
het meest aantrekkelijke kenmerk van mmv is de mogelijkheid om veel bestanden eenvoudig te hernoemen door jokertekens in het commando te accepteren. Hiermee kunt u eenvoudig bepaalde patronen toevoegen of verwijderen uit bestandsnamen, of zelfs tekst in de namen rangschikken. Bekijk enkele voorbeelden hieronder om de syntaxis voor de mmv-tool te leren, en zie enkele van de meest voorkomende commando ‘ s die je ermee kunt gebruiken. Houd er rekening mee dat u de -n
optie met mmv kunt gebruiken om wijzigingen te bekijken.
- gebruik dit voorbeeld om de bestandsextensie van een aantal bestanden te wijzigen. Dit commando zal alle bestanden met extensie wijzigen .htm to .HTML.
$ mmv '*.htm' '#1.html'
- dit commando zal het eerste voorkomen van “foo” vervangen door “bar” in alle bestandsnamen.
$ mmv '*foo*' '#1bar#2'
- het volgende commando geeft u een idee hoe u mmv kunt gebruiken om delen van een bestandsnaam te herschikken. Dit voorbeeld neemt bestanden als
access.log-dbserver
enrejected.log-webserver
en hernoemt ze naar respectievelijkaccess-dbserver.log
enrejected-webserver.log
. Om dit te laten werken, hoeven we alleen maar een consistent patroon te hebben, zoals het streepje en de periode in dit geval.
$ mmv '*.log-*' '#1-#2.log'
- Wijzig alle bestandsnamen naar kleine letters met dit commando.
$ mmv '*' '#l1'
- omgekeerd, wijzig bestandsnamen naar alle hoofdletters met deze.
$ mmv '*' '#u1'
Closing Thoughts
in deze gids hebben we verschillende methoden geleerd om meerdere bestanden tegelijkertijd te hernoemen op Linux. We zagen ook een veelheid aan command line voorbeelden die een heleboel verschillende scenario ‘ s kunnen dekken of gemakkelijk kunnen worden aangepast aan soortgelijke situaties. Bulk hernoemen kan worden gedaan door middel van native bash hulpprogramma ‘ s zoals mv, ls, xargs, en find, of we kunnen de mmv installeren of hernoemen nut om ons leven een beetje makkelijker te maken. Elke methode heeft zijn sterke en zwakke punten, dus gebruik degene die je denkt dat het meest geschikt is voor u.