Nimeta ümber - käsurea tööriist mitme faili ümbernimetamiseks Linuxis


Kasutame Linuxis ühe faili ümbernimetamiseks sageli käsku “mv”. Mitme või mitme failirühma ümbernimetamine muudab selle terminalis siiski väga keeruliseks.

Linuxil on väga võimas sisseehitatud tööriist nimega ümbernimetamine. Ümbernimetamise käsku kasutatakse mitme faili või failirühma ümbernimetamiseks, failide ümber nimetamiseks väikesteks, failide ümbernimetamiseks suurtähtedeks ja failide ülekirjutamiseks, kasutades perl-väljendeid.

"Rename" -käsu on Perli skripti osa ja see asub paljudes Linuxi distributsioonides jaotises "/ usr/bin /". Ümbernimetamise käsu asukoha väljaselgitamiseks võite käivitada käsu "milline".

$ which rename
/usr/bin/rename
rename 's/old-name/new-name/' files

Ümbernimetamise käsul on vähe valikulisi argumente koos kohustusliku perl-avaldisega, mis suunab käsu ümber nimetama tegeliku töö tegemiseks.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

  1. -v: printige failide nimed edukalt ümber.
  2. -n: näidake, millised failid oleks ümber nimetatud.
  3. -f: sundib olemasolevad failid üle kirjutama.
  4. perlexpr: Perli väljend.

Selle utiliidi paremaks mõistmiseks oleme artiklis käsitlenud mõnda selle käsu praktilist näidet.

1. Põhiline ümbernimetamise käsu näide

Oletame, et teil on hunnik faile, mille laiendus on .html, ja soovite kõik ".html" failid ümber nimetada korraga .php-ks. Näiteks tehke kõigepealt “ls -l”, et kontrollida failide loendit, mille laiend on “.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

Nüüd soovite kõigi nende failide laienduse “.html” asemel muuta “.php”. Võite kasutada järgmist "rename" käsku perli avaldisega, nagu allpool näidatud.

[email :~$ rename 's/\.html$/\.php/' *.html

Märkus. Ülaltoodud käsus oleme kasutanud kahte argumenti.

  1. Esimene argument on perli avaldis, mis asendab .html sõnaga .php.
  2. Teine argument käsib käsul rename asendada kõik failid tähega * .php.

Kontrollime, kas kõik failid on ümber nimetatud .php laiendiks, tehes viipal ls -l.

[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

Nüüd näete eespool, et kõik html-failid nimetatakse PHP-ks.

2. Kontrollige muudatusi, enne kui käivitate käsu Nimeta ümber

Kriitiliste või suuremate ümbernimetamisülesannete tegemisel saate muudatusi alati kontrollida, käivitades argumendiga "-n" ümbernimetamise käsu. Parameeter „-n” ütleb teile täpselt, millised muudatused toimuksid, kuid muudatusi ei tehta päris. Siin on allpool toodud käsu näide.

[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

Märkus. Ülaltoodud käsu väljund kuvab ainult muudatusi, kuid tegelikult muudatusi ei tehta, välja arvatud juhul, kui käivitate käsu ilma lülitita “-n”.

3. Prindi Nimeta väljund ümber

Nägime, et ümber nimetamise käsk ei kuvanud teavet muudatuste kohta, mida see teeb. Niisiis, kui soovite saada käsu ümbernimetamise üksikasjad (nagu me tegime valiku "-n" abil), kasutame siin valikut "-v", et printida kõigi ümbernimetamise abil tehtud muudatuste täielikud üksikasjad edukalt.

[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. Teisendage kõik väiketähed suurteks ja Vise-Versaks

Kõikide väikeste tähtedega nimega failide ümbernimetamine suurte tähtedega. Näiteks tahan varjata kõiki neid järgmisi faile väikestest suurtest.

[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

Lihtsalt kasutage järgmist käsku perli avaldisega.

[email :~$ rename 'y/a-z/A-Z/' *.html

Kui ülaltoodud käsk on täidetud, saate muudatusi kontrollida, tehes "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

Näete, et ülaltoodud käsk nimetas kõik väiketähtedega failinimed (laiendiga .HTML) ümber suurtähtedeks.

Samamoodi saate järgmise käsu abil teisendada ka kõik suurtähed väiketähtedeks.

[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. Esitage failinime esimene täht suurtähtedega

Iga failinime ainult esimese tähe suurtähtede kirjutamiseks kasutage järgmist käsku.

# rename 's/\b(\w)/\U$1/g' *.ext

6. Kirjutage olemasolevad failid üle

Kui soovite olemasolevad failid jõuliselt üle kirjutada, kasutage valikut "-f", nagu allpool näidatud.

[email :~$ rename -f 's/a/b/' *.html

Kui soovite käsu ümbernimetamise kohta rohkem teada saada, tippige terminali "man rename".

Ümbernimetamise käsk on väga kasulik, kui teil on käsurealt mitme faili või pakkide ümbernimetamine. Proovige ja andke mulle teada, kui kaugele on failide ümbernimetamine kasulik.