Nimeä uudelleen - komentorivityökalu useiden tiedostojen uudelleennimeämiseen Linuxissa
Nimeämme yksittäisen tiedoston uudelleen Linuxissa usein mv-komennolla. Useiden tiedostojen tai tiedostoryhmän uudelleennimeäminen tekee siitä kuitenkin hyvin vaikea tehtävä päätelaitteessa.
Linuxissa on erittäin tehokas sisäänrakennettu työkalu nimeltä rename. Nimeä uudelleen -komentoa käytetään nimittämään useita tiedostoja tai tiedostoryhmiä, nimeämään tiedostot uudelleen pieniksi, nimeämään tiedostot suuriksi ja korvaamaan tiedostot perl-lausekkeilla.
"Rename" -komento on osa Perl-komentosarjaa ja se sijaitsee "/ usr/bin /" -kohdassa monissa Linux-jakeluissa. Voit suorittaa ”mikä” -komennon saadaksesi selville uudelleennimeämiskomennon sijainnin.
$ which rename /usr/bin/rename
rename 's/old-name/new-name/' files
Nimeä uudelleen -komennossa on muutama valinnainen argumentti sekä pakollinen perl-lauseke, joka ohjaa nimeä komento tekemään varsinaisen työn.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
- -v: Tulosta tiedostojen nimet, joiden uudelleennimeäminen onnistui.
- -n: Näytä, mitkä tiedostot olisi nimetty uudelleen.
- -f: Pakota korvaamaan olemassa olevat tiedostot.
- perlexpr: Perl-lauseke.
Tämän hyödyllisyyden ymmärtämiseksi olemme keskustelleet muutamasta käytännön esimerkistä tästä komennosta artikkelissa.
1. Perusnimeä komento uudelleen
Oletetaan, että sinulla on joukko tiedostoja, joiden tunniste on .html, ja haluat nimetä kaikki .html-tiedostot uudelleen .php-tiedostoksi kerralla. Esimerkiksi, tee ensin ”ls -l” tarkistaaksesi luettelon tiedostoista, joiden tunniste 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
Nyt haluat muuttaa kaikkien näiden tiedostojen laajennuksen tiedostosta .html tiedostoksi .php. Voit käyttää seuraavaa "rename" -komentoa perl-lausekkeella alla esitetyllä tavalla.
[email :~$ 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: llä.
- Toinen argumentti käskee nimetä uudelleen -komennon korvaamaan kaikki tiedostot * .php: llä.
Tarkistetaan, onko kaikki tiedostot nimetty uudelleen .php-laajennuksiksi, tekemällä kehotteessa 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
Nyt voit nähdä yllä, että kaikki html-tiedostot nimetään uudelleen php: ksi.
2. Tarkista muutokset ennen komenton uudelleennimeämistä
Kun teet kriittisiä tai tärkeitä uudelleennimeämistehtäviä, voit aina tarkistaa muutokset suorittamalla rename-komennon "-n" -argumentilla. Parametri “-n” kertoo tarkalleen, mitä muutoksia tapahtuisi, mutta muutoksia ei tehdä oikeasti. Tässä on esimerkki alla olevasta komennosta.
[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
Huomaa: Yllä oleva komentolähtö näyttää vain muutokset, mutta todellisuudessa muutoksia ei tehdä, ellet suorita komentoa ilman “-n” -kytkintä.
3. Tulosta Nimeä lähtö uudelleen
Huomasimme, että uudelleennimeämiskomento ei näyttänyt tietoja muutoksista. Joten, jos haluat saada uudelleennimeämiskomennon yksityiskohdat (kuten teimme "-n" -vaihtoehdon avulla), tässä käytämme "-v" -vaihtoehtoa tulostaaksesi täydelliset tiedot kaikista uudelleennimeämiskomennolla tehdyistä muutoksista onnistuneesti.
[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. Muunna kaikki pienet kirjaimet isoksi ja Vise-Versa
Voit nimetä kaikki tiedostot uudelleen pienillä kirjaimilla isoin. Haluan esimerkiksi peittää kaikki nämä seuraavat tiedostot pienistä isoihin.
[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
Käytä vain seuraavaa komentoa perl-lausekkeella.
[email :~$ rename 'y/a-z/A-Z/' *.html
Kun olet suorittanut yllä olevan komennon, voit tarkistaa muutokset tekemällä "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
Voit nähdä, että yllä oleva komento nimitti kaikki pienet kirjaimet (.HTML-laajennuksella) isoille kirjaimille.
Vastaavasti voit myös muuntaa kaikki isot kirjaimet pieniksi käyttämällä seuraavaa komentoa.
[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. Isot kirjaimet tiedostonimi
Jos haluat käyttää isoja kirjaimia kustakin tiedostonimestä, käytä seuraavaa komentoa.
# rename 's/\b(\w)/\U$1/g' *.ext
6. Korvaa olemassa olevat tiedostot
Jos haluat korvata olemassa olevat tiedostot pakollisesti, käytä ”-f” -vaihtoehtoa alla olevan kuvan mukaisesti.
[email :~$ rename -f 's/a/b/' *.html
Jos haluat lisätietoja uudelleennimeämiskomennosta, kirjoita päähän ”man rename”.
Nimeä uudelleen -komento on erittäin hyödyllinen, jos olet tekemisissä tiedostojen usean tai eränimellisen uudelleennimeämisen kanssa komentoriviltä. Kokeile ja kerro minulle, kuinka pitkälle on hyötyä tiedostojen uudelleennimeämisessä.