Nimeä uudelleen - komentorivityökalu useiden tiedostojen uudelleennimeämiseen Linuxissa


Käytämme usein mv-komentoa yksittäisen tiedoston uudelleennimeämiseen Linuxissa. Useiden tiedostojen tai tiedostoryhmien uudelleennimeäminen nopeasti tekee siitä kuitenkin erittäin vaikean päätelaitteen tehtävän.

Linuxissa on erittäin tehokas sisäänrakennettu työkalu nimeltä uudelleennimeä. Rename-komentoa käytetään useiden tiedostojen tai ryhmien uudelleennimeämiseen, tiedostojen nimeämiseen pienillä kirjaimilla, tiedostojen uudelleennimeämiseen isoilla kirjaimilla ja tiedostojen korvaamiseen perl-lausekkeiden avulla.

Komento "rename" on osa Perl-komentosarjaa, ja se sijaitsee kohdassa "/usr/bin/" monissa Linux-jakeluissa. Voit suorittaa which-komennon saadaksesi selville uudelleennimeämiskomennon sijainnin.

which rename
/usr/bin/rename
Nimeä uudelleen -komennon perussyntaksi
rename 's/old-name/new-name/' files

Rename-komennossa on muutama valinnainen argumentti sekä pakollinen perl-lauseke, joka ohjaa nimeämiskomennon suorittamaan varsinaista työtä.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
  1. -v: Tulosta uudelleennimettyjen tiedostojen nimet.
  2. -n: Näytä, mitkä tiedostot olisi nimetty uudelleen.
  3. -f: Pakota olemassa olevien tiedostojen päällekirjoitus.
  4. perlexpr: Perl-lauseke.

Tämän apuohjelman ymmärtämiseksi olemme käsitelleet muutamia käytännön esimerkkejä tästä komennosta artikkelissa.

1. Esimerkki uudelleennimeämiskomennosta

Oletetaan, että sinulla on joukko tiedostoja, joiden tunniste on .html, ja haluat nimetä kaikki .html-tiedostot uudelleen muotoon .php. yhdellä kertaa. Tee esimerkiksi ensin "ls -l" tarkistaaksesi luettelon tiedostoista, joiden tiedostotunniste on .html.

ravisaive@tecmint:~$ 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

Nyt haluat muuttaa kaikkien näiden tiedostojen laajennukseksi .html muotoon .php. Voit käyttää seuraavaa rename-komentoa perl-lausekkeen kanssa alla olevan kuvan mukaisesti.

ravisaive@tecmint:~$ rename 's/\.html$/\.php/' *.html

Huomaa: yllä olevassa komennossa olemme käyttäneet kahta argumenttia.

  1. Ensimmäinen argumentti on perl-lauseke, joka korvaa .html:n .php:lla.
  2. Toinen argumentti käskee rename-komennon korvaamaan kaikki tiedostot *.php-komennolla.

Tarkistetaan, onko kaikki tiedostot nimetty uudelleen .php-tunnisteeksi, tekemällä kehotteessa ls -l.

ravisaive@tecmint:~$ 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

Nyt näet yllä, että kaikki html-tiedostot on nimetty uudelleen muotoon php.

2. Tarkista muutokset ennen uudelleennimeämiskomennon suorittamista

Kun suoritat tärkeitä tai suuria uudelleennimeämistehtäviä, voit aina tarkistaa muutokset suorittamalla uudelleennimeämiskomennon -n-argumentilla. Parametri -n kertoo tarkalleen, mitä muutoksia tapahtuisi, mutta muutoksia ei tehdä todellisuudessa. Tässä on esimerkki komennosta alla.

ravisaive@tecmint:~$ 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

Huomaa: yllä oleva komennon tulos näyttää vain muutokset, mutta todellisuudessa muutoksia ei tehdä, ellet suorita komentoa ilman -n-kytkintä.

3. Tulosta Nimeä uudelleen

Näimme, että uudelleennimeämiskomento ei näyttänyt tietoja muutoksista. Joten jos haluat saada tiedot uudelleennimeämiskomennosta (kuten teimme käyttämällä "-n" -vaihtoehtoa), käytämme tässä "-v" -vaihtoehtoa tulostaaksemme täydellisen tiedot kaikista muutoksista, jotka on tehty uudelleennimeämiskomennolla onnistuneesti.

ravisaive@tecmint:~$ 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. Muunna kaikki pienet kirjaimet isoiksi kirjaimiksi ja Vise-Versa

Nimeäksesi kaikki tiedostot pienillä kirjaimilla nimellä isoilla kirjaimilla. Haluan esimerkiksi peittää kaikki seuraavat tiedostot pienistä nimistä >isot kirjaimet.

Pienestä isoksi kirjaimeen
ravisaive@tecmint:~$ 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

Käytä vain seuraavaa komentoa perl-lausekkeen kanssa.

ravisaive@tecmint:~$ rename 'y/a-z/A-Z/' *.html

Kun olet suorittanut yllä olevan komennon, voit tarkistaa muutokset tekemällä "ls -l".

ravisaive@tecmint:~$ 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

Voit nähdä, että yllä oleva komento itse asiassa nimesi kaikki pienillä kirjaimilla kirjoitetut tiedostonimet (tunniste .HTML) isoiksi kirjaimiksi.

Isot ja pienet kirjaimet

Vastaavasti voit myös muuntaa kaikki isot merkit pieniksi kirjaimiksi käyttämällä seuraavaa komentoa.

ravisaive@tecmint:~$ rename 'y/A-Z/a-z/' *.HTML
ravisaive@tecmint:~$ 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. Kirjoita tiedostonimen ensimmäinen kirjain isolla kirjaimella

Käytä seuraavaa komentoa, jos haluat kirjoittaa vain ensimmäisen kirjaimen jokaisesta tiedostonimestä.


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

6. Korvaa olemassa olevat tiedostot

Jos haluat korvata olemassa olevat tiedostot väkisin, käytä -f-vaihtoehtoa alla kuvatulla tavalla.

ravisaive@tecmint:~$ rename -f 's/a/b/' *.html

Jos haluat tietää lisää rename-komennosta, kirjoita terminaaliin "man rename".

Rename-komento on erittäin hyödyllinen, jos käsittelet tiedostojen useiden tai joukkonimeämistä komentoriviltä. Kokeile ja kerro minulle, kuinka paljon se on hyödyllistä tiedostojen uudelleennimeämisessä.