Pārdēvēt - komandrindas rīks vairāku failu pārdēvēšanai Linux


Mēs bieži izmantojam komandu “mv”, lai pārdēvētu vienu failu Linux. Tomēr vairāku failu vai failu grupas pārdēvēšana ātri padara to par ļoti sarežģītu uzdevumu terminālā.

Linux nāk ar ļoti jaudīgu iebūvētu rīku, ko sauc par pārdēvēšanu. Pārdēvēšanas komandu izmanto, lai pārdēvētu vairākus failus vai grupas, pārdēvētu failus par mazajiem burtiem, pārdēvētu failus par lielajiem un pārrakstītu failus, izmantojot perl izteiksmes.

Komanda “pārdēvēt” ir Perl skripta daļa, un tā daudzos Linux izplatījumos atrodas sadaļā “/ usr/bin /”. Jūs varat palaist komandu “kurš”, lai uzzinātu komandas pārdēvēšanas vietu.

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

Komandā pārdēvēt ir daži izvēles argumenti, kā arī obligāta perl izteiksme, kas virza komandas pārdēvēšanu faktiskā darba veikšanai.

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

  1. -v: veiksmīgi pārdēvēto failu nosaukumi.
  2. -n: parādiet, kādi faili būtu pārdēvēti.
  3. -f: piespiedu kārtā pārrakstīt esošos failus.
  4. perlexpr: Perla izteiksme.

Lai labāk izprastu šo lietderību, rakstā esam apsprieduši dažus šīs komandas praktiskus piemērus.

1. Komandu pamata pārdēvēšanas piemērs

Pieņemsim, ka esat izveidojis vairākus failus ar paplašinājumu “.html” un vienā reizē vēlaties pārdēvēt visus “.html” failus uz “.php”. Piemēram, vispirms veiciet “ls -l”, lai pārbaudītu failu sarakstu ar paplašinājumu “.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

Tagad jūs vēlaties mainīt visu šo failu paplašinājumu no “.html” uz “.php”. Jūs varat izmantot šādu komandu “pārdēvēt” ar perl izteiksmi, kā parādīts zemāk.

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

Piezīme. Iepriekš minētajā komandā mēs izmantojām divus argumentus.

  1. Pirmais arguments ir perla izteiksme, kas aizstāj .html ar .php.
  2. Otrais arguments liek komandai pārdēvēt aizstāt visus failus ar * .php.

Pārbaudīsim, vai visi faili tiek pārdēvēti par “.php” paplašinājumu, uzvednē veicot 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

Tagad jūs varat redzēt iepriekš, ka visi html faili tiek pārdēvēti par php.

2. Pārbaudiet izmaiņas pirms komandas pārdēvēšanas palaišanas

Veicot kritiskus vai lielākus pārdēvēšanas uzdevumus, jūs vienmēr varat pārbaudīt izmaiņas, palaižot komandu pārdēvēt ar argumentu “-n”. Parametrs “-n” precīzi pateiks, kādas izmaiņas notiks, taču izmaiņas netiek veiktas pa īstam. Šeit ir zemāk redzamās komandas piemērs.

[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

Piezīme. Iepriekšminētajā komandas izvadē tiek parādītas tikai izmaiņas, taču patiesībā izmaiņas netiek veiktas, ja vien jūs neizpildāt komandu bez “-n” slēdža.

3. Drukājiet pārdēvēt izvadi

Mēs redzējām, ka pārdēvēšanas komanda neparādīja nekādu informāciju par veiktajām izmaiņām. Tātad, ja vēlaties iegūt detalizētu informāciju par komandas pārdēvēšanu (tāpat kā mēs to darījām, izmantojot opciju “-n”), šeit mēs izmantojam opciju “-v”, lai veiksmīgi izdrukātu pilnīgu informāciju par visām izmaiņām, kas veiktas, pārdēvējot komandu.

[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. Pārvērst visus mazos burtus uz lielajiem un Vise-Versa

Lai visus failus ar mazo burtu nosaukumiem pārdēvētu par lielajiem burtiem. Piemēram, es vēlos slēpt visus šos failus no mazajiem burtiem līdz lielajiem burtiem.

[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

Vienkārši izmantojiet šo komandu ar perl izteiksmi.

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

Kad esat izpildījis iepriekš minēto komandu, varat pārbaudīt izmaiņas, veicot “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

Jūs varat redzēt, ka iepriekš minētā komanda faktiski pārdēvēja visus mazos burtus (ar .HTML paplašinājumu) ar lielajiem burtiem.

Līdzīgi jūs varat arī pārveidot visas lielās un mazās rakstzīmes, izmantojot šo komandu.

[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. Sākot ar lielo burtu faila nosaukumā

Lai rakstītu ar lielo burtu tikai katra faila nosaukuma pirmo burtu, izmantojiet šādu komandu.

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

6. Pārrakstīt esošos failus

Ja vēlaties spēcīgi pārrakstīt esošos failus, izmantojiet opciju “-f”, kā parādīts zemāk.

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

Ja vēlaties uzzināt vairāk par komandu pārdēvēt, terminālā ierakstiet “man rename”.

Komanda pārdēvēt ir ļoti noderīga, ja jums ir darīšana ar vairāku vai pakešdatņu failu pārdēvēšanu no komandrindas. Pamēģiniet un dariet man zināmu, cik daudz tas ir noderīgi failu pārdēvēšanas ziņā.