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 ]
- -v: Tulosta uudelleennimettyjen tiedostojen nimet.
- -n: Näytä, mitkä tiedostot olisi nimetty uudelleen.
- -f: Pakota olemassa olevien tiedostojen päällekirjoitus.
- 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.
- Ensimmäinen argumentti on perl-lauseke, joka korvaa .html:n .php:lla.
- 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ä.