Endurnefna - Skipanalínutól til að endurnefna margar skrár í Linux


Við notum oft „mv“ skipunina til að endurnefna eina skrá í Linux. Hins vegar, að endurnefna margar eða hópa skráa, gerir það fljótt mjög erfitt verkefni í flugstöðinni.

Linux kemur með mjög öflugt innbyggt tól sem kallast endurnefna. Endurnefna skipunin er notuð til að endurnefna margar eða hópa af skrám, endurnefna skrár í lágstafi, endurnefna skrár í hástafi og skrifa yfir skrár með perl tjáningum.

Skipunin „endurnefna“ er hluti af Perl handriti og hún er undir „/usr/bin/“ á mörgum Linux dreifingum. Þú getur keyrt „hvaða“ skipun til að komast að staðsetningu endurnefna skipunarinnar.

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

Endurnefna skipunin kemur með nokkrum valkvæðum rökum ásamt skyldubundinni perl tjáningu sem leiðir endurnefna skipunina til að vinna raunverulega vinnu.

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

  1. -v: Prentun nöfn skráa sem endurnefna.
  2. -n: Sýna hvaða skrár hefðu verið endurnefndir.
  3. -f: Þvingaðu yfir að skrifa yfir núverandi skrár.
  4. perlexpr: Perl tjáning.

Til að fá betri skilning á þessu tóli höfum við fjallað um nokkur hagnýt dæmi um þessa skipun í greininni.

1. Dæmi um Basic Rename Command

Segjum að þú hafir fullt af skrám með .html endingunni og þú vilt endurnefna allar .html skrár í .php í einu. Til dæmis, gerðu fyrst „ls -l“ til að athuga listann yfir skrár með „.html“ endingunni.

# [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

Nú viltu breyta framlengingu allra þessara skráa úr .html í .php. Þú getur notað eftirfarandi „endurnefna“ skipun með perl tjáningu eins og sýnt er hér að neðan.

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

Athugið: Í ofangreindri skipun höfum við notað tvö rök.

  1. Fyrstu rökin eru perl tjáning sem kemur í stað .html fyrir .php.
  2. Önnur röksemdafærsla segir endurnefna skipuninni að skipta öllum skrám út fyrir *.php.

Við skulum ganga úr skugga um hvort allar skrár séu endurnefndir í .php endinguna, með því að gera ls -l á hvetjunni.

[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

Nú geturðu séð hér að ofan að allar html skrárnar eru endurnefndir í php.

2. Athugaðu breytingar áður en þú keyrir Rename Command

Þegar þú gerir mikilvæg eða meiriháttar endurnefna verkefni geturðu alltaf athugað breytingarnar með því að keyra endurnefna skipunina með „-n“ rökum. „-n“ færibreytan mun segja þér nákvæmlega hvaða breytingar myndu eiga sér stað, en breytingarnar eru ekki gerðar fyrir alvöru. Hér er dæmið um skipunina hér að neðan.

[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

Athugið: Ofangreind skipanaúttak sýnir aðeins breytingar, en í raun eru breytingarnar ekki gerðar, nema þú keyrir skipunina án -n rofa.

3. Prenta Endurnefna úttak

Við sáum að endurnefna skipunin sýndi engar upplýsingar um breytingar sem hún gerir. Svo, ef þú vilt fá upplýsingar um endurnefna skipunina (eins og við gerðum með „-n“ valmöguleikanum), hér notum við „-v“ valkostinn til að prenta allar upplýsingar um allar breytingar sem gerðar voru með endurnefna skipuninni.

[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. Umbreyttu öllum lágstöfum í hástafi og öfugt

Til að flokka endurnefna allar skrár með litlum nöfnum í hástafi. Til dæmis vil ég leyna öllum þessum eftirfarandi skrám frá lágstöfum yfir í hástafi.

[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

Bara, notaðu eftirfarandi skipun með perl tjáningu.

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

Þegar þú hefur framkvæmt ofangreinda skipun geturðu athugað breytingarnar með því að gera „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

Þú getur séð að ofangreind skipun breytti í raun öllum litlum skráarnöfnum (með .HTML endingunni) í hástafi.

Á sama hátt geturðu líka breytt öllum hástöfum í lágstafi með því að nota eftirfarandi skipun.

[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. Skrifaðu fyrsta stafinn í skráarnafni með hástöfum

Notaðu eftirfarandi skipun til að skrifa aðeins fyrsta staf í hverju skráarnafni með hástöfum.

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

6. Skrifaðu yfir núverandi skrár

Ef þú vilt skrifa yfir núverandi skrár með valdi skaltu nota -f valkostinn eins og sýnt er hér að neðan.

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

Ef þú vilt vita meira um endurnefna skipunina skaltu slá inn „endurnefna mann“ í flugstöðinni.

Endurnefna skipunin er mjög gagnleg ef þú ert að fást við margfalda eða hópa endurnefna skrár frá skipanalínunni. Reyndu og láttu mig vita, hversu langt er gagnlegt hvað varðar endurnefna skrár.