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 ]

  1. -v: Udskriv navnene på filer, der er omdøbt.
  2. -n: Vis hvilke filer der ville være blevet omdøbt.
  3. -f: Tving til at overskrive eksisterende filer.
  4. 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.

  1. Første argument er et perl-udtryk, der erstatter .html med .php.
  2. 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.