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 ]

  1. -v: Tulosta tiedostojen nimet, joiden uudelleennimeäminen onnistui.
  2. -n: Näytä, mitkä tiedostot olisi nimetty uudelleen.
  3. -f: Pakota korvaamaan olemassa olevat tiedostot.
  4. 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.

  1. Ensimmäinen argumentti on perl-lauseke, joka korvaa .html: n .php: llä.
  2. 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ä.