Omdøb - Et kommandolinjeværktøj til omdøbning af flere filer i Linux
Vi bruger ofte kommandoen “mv” til at omdøbe en enkelt fil i Linux. At omdøbe flere eller en gruppe af filer gør det dog hurtigt meget vanskeligt at udføre i en terminal.
Linux leveres med et meget kraftfuldt indbygget værktøj kaldet omdøb. Omdøbskommandoen bruges til at omdøbe flere eller en gruppe af filer, omdøbe filer til små bogstaver, omdøbe filer til store bogstaver og overskrive filer ved hjælp af perl-udtryk.
Kommandoen "omdøb" er en del af Perl-scriptet, og den ligger under "/ usr/bin /" på mange Linux-distributioner. Du kan køre "hvilken" kommando for at finde ud af placeringen af kommandoen omdøbe.
$ which rename /usr/bin/rename
rename 's/old-name/new-name/' files
Omdøb kommandoen leveres med få valgfri argumenter sammen med obligatorisk perl-udtryk, der guider omdøb kommando til at udføre faktisk arbejde.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
- -v: Udskriv navnene på filer, der er omdøbt.
- -n: Vis hvilke filer der ville være blevet omdøbt.
- -f: Tving til at overskrive eksisterende filer.
- perlexpr: Perl-udtryk.
For bedre forståelse af dette værktøj har vi diskuteret nogle få praktiske eksempler på denne kommando i artiklen.
1. Et grundlæggende eksempel på omdøbning af kommando
Antag, at du har en række filer med ".html" -udvidelsen, og at du vil omdøbe alle ".html" -filer til ".php" på én gang. For eksempel skal du først lave en “ls -l” for at kontrollere listen over filer med “.html” udvidelse.
# [email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 news.html -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 sports.html
Nu vil du ændre udvidelsen af alle disse filer fra ".html" til ".php". Du kan bruge følgende "omdøb" -kommando med perl-udtryk som vist nedenfor.
[email :~$ rename 's/\.html$/\.php/' *.html
Bemærk: I ovenstående kommando har vi brugt to argumenter.
- Første argument er et perl-udtryk, der erstatter .html med .php.
- Andet argument fortæller kommandoen omdøbe at erstatte alle filerne med * .php.
Lad os kontrollere, om alle filer omdøbes til ".php" -udvidelse, ved at gøre ls -l på prompten.
[email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.php -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 entertainment.php -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.php -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.php -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 news.php -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 photos.php -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 sports.php
Nu kan du se ovenfor, at alle html-filerne omdøbes til php.
2. Kontroller ændringer, før du kører Omdøb kommando
Mens du udfører kritiske eller større omdøbningsopgaver, kan du altid kontrollere ændringerne ved at køre kommandoen omdøb med "-n" -argumentet. Parameteren “-n” fortæller dig nøjagtigt, hvilke ændringer der ville finde sted, men ændringerne udføres ikke rigtigt. Her er eksemplet på kommandoen nedenfor.
[email :~$ rename -n 's/\.php$/\.html/' *.php cricket.php renamed as cricket.html entertainment.php renamed as entertainment.html health.php renamed as health.html lifestyle.php renamed as lifestyle.html news.php renamed as news.html photos.php renamed as photos.html sports.php renamed as sports.html
Bemærk: Ovenstående kommandooutput viser kun ændringer, men i virkeligheden udføres ændringerne ikke, medmindre du kører kommandoen uden “-n” -kontakt.
3. Udskriv omdøb output
Vi så, at kommandoen omdøbe ikke viste nogen oplysninger om ændringer, den gør. Så hvis du ønsker at få detaljerne om omdøb kommando (som vi gjorde ved hjælp af "-n" option), her bruger vi "-v" mulighed for at udskrive de komplette detaljer om alle de ændringer, der er udført ved omdøb kommando med succes.
[email :~$ rename -v 's/\.php$/\.html/' *.php cricket.php renamed as cricket.html entertainment.php renamed as entertainment.html health.php renamed as health.html lifestyle.php renamed as lifestyle.html news.php renamed as news.html photos.php renamed as photos.html sports.php renamed as sports.html
4. Konverter alle små bogstaver til store bogstaver og Vise-Versa
For at batch omdøbe alle filer med små bogstaver til store bogstaver. For eksempel vil jeg skjule alle disse følgende filer fra små til store bogstaver.
[email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 news.html -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 sports.html
Brug bare følgende kommando med perl-udtryk.
[email :~$ rename 'y/a-z/A-Z/' *.html
Når du har udført ovenstående kommando, kan du kontrollere ændringerne ved at gøre “ls -l”.
[email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 CRICKET.HTML -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 ENTERTAINMENT.HTML -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 HEALTH.HTML -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 LIFESTYLE.HTML -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 NEWS.HTML -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 PHOTOS.HTML -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 SPORTS.HTML
Du kan se, at ovenstående kommando faktisk omdøbte alle små bogstaver (med .HTML udvidelse) til store bogstaver.
På samme måde kan du også konvertere alle store bogstaver til små bogstaver ved hjælp af følgende kommando.
[email :~$ rename 'y/A-Z/a-z/' *.HTML
[email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 news.html -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 sports.html
5. Brug det første bogstav i filnavn med store bogstaver
Brug følgende kommando for at udelukkende bruge store bogstaver i hvert filnavn.
# rename 's/\b(\w)/\U$1/g' *.ext
6. Overskriv eksisterende filer
Hvis du vil overskrive eksisterende filer med kraft, skal du bruge indstillingen “-f” som vist nedenfor.
[email :~$ rename -f 's/a/b/' *.html
Hvis du vil vide mere om omdøb kommando, skal du skrive “mand omdøb” i terminalen.
Omdøb kommandoen er meget nyttig, hvis du har at gøre med flere eller batch omdøbning af filer fra kommandolinjen. Prøv det og lad mig vide, hvor langt det er nyttigt med hensyn til omdøbning af filer.