januari 1, 2022

Hoe meerdere bestanden tegelijk te hernoemen op Linux

het hernoemen van meerdere bestanden op Linux klinkt als een eenvoudige taak, maar het kan nogal complex worden. Het is mogelijk om bestanden in bulk te hernoemen met het mv commando en een beetje Bash scripting, of gebruik de mmv en rename hulpprogramma ‘ s-die standaard niet geïnstalleerd zijn. In deze handleiding laten we verschillende voorbeelden zien voor het hernoemen van meerdere bestanden tegelijk vanaf de Linux command line.

de voorbeelden in deze gids worden gebruikt om alle bestanden in uw huidige werkmap te hernoemen. De meeste van deze commando ‘ s kunnen eenvoudig worden aangepast om recursief te werken. Merk op dat sommige voorbeelden ook mappen zullen hernoemen.

hernoem meerdere bestanden met mv

het mv commando is een standaard onderdeel van Linux en kan worden gebruikt om meerdere bestanden te hernoemen, maar een beetje scripting is vereist om de taak te doen. Sommige voorbeelden vertrouwen ook op andere standaard Linux utilities zoals ls, find, xargs, enz.

Voorbeeld 1. Wijzig alle bestandsnamen in kleine letters.

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'A-Z' 'a-z'`"; done

Voorbeeld 2. Wijzig alle bestandsnamen in hoofdletters.

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'a-z' 'A-Z'`"; done

Voorbeeld 3. Wijzig alle bestandsextensies van .jpeg naar .jpg.

$ for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done

Voorbeeld 4. Verwijder de bestandsextensie .bak uit alle bestanden.

$ for f in `ls *.bak`; do mv $f ${f%.*}; done

Voorbeeld 5. Voeg een .bak bestandsextensie toe aan alle bestanden.

$ for f in `ls`; do mv $f $f.bak; done

Voorbeeld 6. Gebruik xargs om “_backup” aan elk bestand toe te voegen.

$ ls * | xargs -I{} mv {} {}_backup

Voorbeeld 7. Gebruik de opdrachten find, sed en mv om alle bestanden in kleine letters te veranderen.

$ find . -maxdepth 1 -type f -name '**'|sed -n 's/\(.*\/\)\(.*\)/mv -n -v -T  \L/p'|sh

Voorbeeld 8. Gebruik de opdrachten find -exec en mv om “_backup” toe te voegen aan elk bestand dat eindigt op de extensie .log.

$ find . -type f -name "*.log" -exec mv {} {}_backup \;

Voorbeeld 9. Vergelijkbaar met het vorige voorbeeld, maar vervang find ‘ s -exec Optie door xargs om “_backup” toe te voegen aan elk bestand dat eindigt op .log extensie.

$ find . -type f -name '*log' -print0 | xargs --null -I{} mv {} {}_backup

voorbeeld 10. Vervang een patroon in elk bestand met mv en sed. Dit zal “IMG” vervangen door “Vacation” in elk .jpg bestand.

$ for f in *.jpg; do mv "$f" "`echo "$f" | sed s/IMG/Vacation/`"; done

voorbeeld 11. Voeg de huidige tijdstempel toe aan alle bestanden die eindigen op .log. Dit zou een bestand als access.log veranderen in access_20210418040151.log.

$ for f in *.log; do mv "$f" "${f%.log}"_`date +%Y%m%d%H%M%S`.log; done

hernoem meerdere bestanden met hernoem

het hulpprogramma hernoem maakt onze bulk hernoemingstaken een beetje eenvoudiger, maar het hulpprogramma wordt niet altijd standaard geïnstalleerd. Gebruik het juiste commando hieronder om het te installeren met de package manager van je systeem.

Ubuntu, Debian en Linux Mint:

$ sudo apt install rename

Fedora, AlmaLinux, CentOS en RHEL:

$ sudo dnf install prename

Arch Linux en Manjaro:

$ sudo pacman -S perl-rename
gebruik de -n optie in uw rename commando ‘ s als u de wijzigingen wilt bekijken voordat u ze aanbrengt.

Voorbeeld 1. Wijzig alle bestandsnamen in kleine letters.

$ rename 'y/A-Z/a-z/' *

Voorbeeld 2. Wijzig alle bestandsnamen in hoofdletters.

$ rename 'y/a-z/A-Z/' *

Voorbeeld 3. Strip de .bak extensie uit alle bestanden.

$ rename 's/\.bak$//' *.bak

Voorbeeld 4. Wijzig de extensie van alle .jpeg bestanden naar .jpg.

$ rename 's/\.jpeg/\.jpg/' *.jpeg

Voorbeeld 5. Wijzig de extensie in hoofdletters .JPG in kleine letters .jpg voor alle bestanden.

$ rename 's/\.JPG/\.jpg/' *.JPG

Voorbeeld 6. Verwijder lege spaties uit alle bestandsnamen.

$ rename "s/ *//g" *

Voorbeeld 7. Vervang lege spaties door underscores voor alle bestandsnamen.

$ rename 's/\s+/_/g' *

Voorbeeld 8. Hoofdletter maken van de eerste letter van alle bestandsnamen.

$ rename 's/\b(\w)/\U/g' *

Voorbeeld 9. Vervang een patroon in elke bestandsnaam. Dit commando zal “IMG” vervangen door “Vacation” in elk .jpg bestand.

$ rename 's/IMG/Vacation/' *.jpg

voorbeeld 10. Een deel van een bestandsnaam verwijderen. Dit commando zal “IMG_” verwijderen uit elk .jpg bestand.

$ rename 's/IMG_//' *.jpg

voorbeeld 11. Voeg de .bak extensie toe aan alle bestanden.

$ rename 's/(.*)/.bak/' *

hernoem meerdere bestanden met mmv

het hulpprogramma mmv blinkt uit in het hernoemen van bestanden op basis van patronen, zoals het verwijderen of toevoegen van tekenreeksen aan alle bestanden, of het herschikken van delen van bestandsnamen. Het is meestal niet standaard geïnstalleerd, maar u kunt het juiste commando hieronder gebruiken om mmv te installeren met uw systeem package manager.

Ubuntu, Debian en Linux Mint:

$ sudo apt install mmv

Fedora, AlmaLinux, CentOS en RHEL:

$ sudo dnf install mmv

Arch Linux en Manjaro (installeren vanaf AUR):

$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
gebruik de -n optie in uw mmv commando ‘ s als u de wijzigingen wilt bekijken voordat u ze aanbrengt.

Voorbeeld 1. Wijzig de extensie van alle .jpeg bestanden naar .jpg.

$ mmv '*.jpeg' '#1.jpg'

Voorbeeld 2. Wijzig alle bestandsnamen in kleine letters.

$ mmv '*' '#l1'

Voorbeeld 3. Wijzig alle bestandsnamen in hoofdletters.

$ mmv '*' '#u1'

Voorbeeld 4. Herschik delen van een bestandsnaam. Dit commando zal muziekbestanden met patroon Song-Artist.mp3 veranderen in Artist-Song.mp3.

$ mmv '*-*.mp3' '#2-#1.mp3'

Voorbeeld 5. Vervang het eerste voorkomen van ” IMG “door” vakantie ” in alle bestandsnamen.

$ mmv '*IMG*' '#1Vacation#2'

Voorbeeld 6. Voeg een voorvoegsel toe aan elke bestandsnaam. Dit commando zal “backup_” toevoegen aan elk .log bestand.

$ mmv '*.log' 'backup_#1.log'

Voorbeeld 7. Voeg een achtervoegsel toe aan elke bestandsnaam. Dit commando zal “_backup” toevoegen aan elk .log bestand.

$ mmv '*.log' '#1.log_backup'

Voorbeeld 8. Verwijder het voorvoegsel” IMG_ ” uit alle .jpg bestanden.

$ mmv 'IMG_*.jpg' '#1'

Voorbeeld 9. Verwijder het” _oud ” achtervoegsel uit alle bestanden.

$ mmv '*_old' '#1'

Bulk hernoemen van bestanden via GUI

als de opdrachtregel niet echt uw ding is, is het mogelijk om meerdere bestanden tegelijk te hernoemen via GUI. Een van de beste tools om het werk te doen is de Bulk hernoemen applicatie die wordt geleverd met Thunar.

Thunar is de standaard bestandsbrowser voor Xfce, maar u kunt het installeren ongeacht de desktopomgeving die u gebruikt. Als je al Xfce of Thunar gebruikt, dan maakt Bulk Rename al deel uit van je systeem. Gebruik anders het juiste commando hieronder om het te installeren met de package manager van je systeem.

Ubuntu, Debian en Linux Mint:

$ sudo apt install thunar

Fedora, AlmaLinux, CentOS en RHEL:

$ sudo dnf install thunar

Arch Linux en Manjaro:

$ sudo pacman -S thunar

Stap 1 Nadat Thunar is geïnstalleerd, zoeken naar en open de Bulk Rename utility.

het openen van de Bulk hernoemen utility

Stap 2. Klik op het plusteken om bestanden toe te voegen die u wilt hernoemen.

een lijst met bestanden toevoegen aan de Bulk hernoem toepassing

Stap 3. Kies uit de lijst met opties wat u wilt doen met de bestanden. U kunt ze allemaal wijzigen in hoofdletters of kleine letters, een datum en tijd toevoegen, Tekst op een bepaalde positie invoegen, automatische nummering toevoegen, tekens vervangen of bepaalde patronen in de bestandsnamen zoeken en vervangen, onder andere. In het voorbeeld hieronder hebben we een .txt bestandsextensie toegevoegd aan al onze bestanden.

Bulk hernoemen tool toont de oude namen en nieuwe bestandsnamen

Stap 4. Als u tevreden bent met de voorbeeldwijzigingen in de kolom “nieuwe naam”, klikt u op “bestanden hernoemen” om de bulk hernoemen uit te voeren.

het voltooien van de bulk hernoemingstaak

het hernoemen van meerdere bestanden op WSL

als u Windows Subsystem for Linux gebruikt, zullen sommige bovenstaande commando ‘ s niet werken, vooral die waarbij bestanden moeten worden gewijzigd in kleine of hoofdletters. Windows is niet hoofdlettergevoelig, dus beschouwt File.txt, file.txt en FILE.txt als allemaal hetzelfde bestand.

u krijgt gewoon een fout dat het bestand al bestaat als u probeert FILE.txt te hernoemen naar file.txt. Om dit probleem te voorkomen, gebruik een van de volgende voorbeelden.

Voorbeeld 1. Wijzig de extensie in hoofdletters .JPG naar kleine letters .jpg voor alle bestanden (met standaard hulpprogramma ‘ s).

$ for f in *.JPG; do mv "$f" "${f%.JPG}.jpgaux"; done && for f in *.jpgaux; do mv "$f" "${f%.jpgaux}.jpg"; done

Voorbeeld 2. Wijzig de extensie in hoofdletters .JPG naar kleine letters .jpg voor alle bestanden (Gebruik het hulpprogramma hernoemen).

$ rename 's/\.JPG$/\.jpgaux/' *.JPG && rename 's/\.jpgaux$/\.jpg/' *.jpgaux

Voorbeeld 3. Wijzig de extensie in hoofdletters .JPG naar kleine letters .jpg voor alle bestanden (Gebruik mmv utility).

$ mmv '*.JPG' '#1.jpgaux' && mmv '*.jpgaux' '#1.jpg'

Voorbeeld 4. Wijzig alle bestandsnamen in kleine letters (met behulp van standaard hulpprogramma ‘ s).

$ for f in `ls | grep `; do mv "$f" "`echo $f.aux | tr 'A-Z' 'a-z'`"; done && for f in `ls *.aux`; do mv $f ${f%.*}; done

Voorbeeld 5. Wijzig alle bestandsnamen in kleine letters (met behulp van mmv utility).

$ mmv '*' '#l1.aux' && mmv '*.aux' '#1'

conclusie

het is mogelijk om standaard Bash utilities te gebruiken voor al je bulk hernoemen op Linux, maar de hernoemen en mmv tools maken het een stuk makkelijker. We kunnen Thunar ‘ s Bulk Rename applicatie ook gebruiken als we de GUI liever over de opdrachtregel gebruiken. De voorbeelden in deze gids bestrijken een breed scala aan hernoemingsscenario ‘ s en kunnen gemakkelijk worden aangepast aan andere behoeften.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.