Badilisha jina - Zana ya Mstari wa Amri ya Kubadilisha Faili Nyingi kwenye Linux


Mara nyingi sisi hutumia amri ya mv kubadili jina la faili moja katika Linux. Walakini, kubadilisha jina nyingi au kikundi cha faili haraka hufanya iwe kazi ngumu sana kwenye terminal.

Linux inakuja na zana yenye nguvu sana iliyojengewa ndani inayoitwa rename. Amri ya kubadilisha jina hutumiwa kubadilisha faili nyingi au kikundi cha faili, kubadilisha faili kwa herufi ndogo, kubadilisha faili kwa herufi kubwa na kubatilisha faili kwa kutumia maneno ya perl.

Amri ya rename ni sehemu ya hati ya Perl na inakaa chini ya /usr/bin/ kwenye usambazaji mwingi wa Linux. Unaweza kuendesha amri ambayo ili kujua eneo la amri ya kubadilisha jina.

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

Amri ya kubadilisha jina inakuja na hoja chache za hiari pamoja na usemi wa lazima wa perl ambao huongoza rename amri kufanya kazi halisi.

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

  1. -v: Chapisha majina ya faili zilizopewa jina jipya.
  2. -n: Onyesha ni faili gani zingebadilishwa jina.
  3. -f: Lazimisha kubatilisha faili zilizopo.
  4. perlexpr: Perl Expression.

Kwa ufahamu bora wa matumizi haya, tumejadili mifano michache ya vitendo ya amri hii katika makala.

1. Mfano wa Amri ya Kubadilisha Jina la Msingi

Tuseme una rundo la faili zilizo na kiendelezi cha .html na unataka kubadilisha faili zote za .html kuwa .php mara moja. Kwa mfano, kwanza fanya ls -l ili kuangalia orodha ya faili na kiendelezi cha .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

Sasa, unataka kubadilisha kiendelezi cha faili hizi zote kutoka .html hadi .php. Unaweza kutumia amri ifuatayo ya rename na usemi wa perl kama inavyoonyeshwa hapa chini.

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

Kumbuka: Katika amri hapo juu tumetumia hoja mbili.

  1. Hoja ya kwanza ni usemi wa perl unaobadilisha .html na .php.
  2. Hoja ya pili inaambia amri ya kubadilisha jina kubadilisha faili zote na *.php.

Hebu tuthibitishe ikiwa faili zote zimepewa jina la kiendelezi cha .php, tukifanya ls -l kwa haraka.

[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

Sasa unaweza kuona hapo juu kuwa faili zote za html zimepewa jina la php.

2. Angalia Mabadiliko Kabla ya Kuendesha Rename Rename Command

Wakati unafanya kazi muhimu au kuu za kubadilisha jina, unaweza kuangalia mabadiliko kila wakati kwa kutekeleza amri ya kubadilisha jina kwa hoja ya -n. Kigezo cha -n kitakuambia ni mabadiliko gani yangefanyika, lakini mabadiliko hayafanyiki kwa kweli. Hapa kuna mfano wa amri hapa chini.

[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

Kumbuka: Pato la amri hapo juu linaonyesha mabadiliko tu, lakini kwa kweli mabadiliko hayafanyiki, isipokuwa ukiendesha amri bila kubadili -n.

3. Chapisha Badilisha Jina la Pato

Tuliona kuwa amri ya kubadilisha jina haikuonyesha habari yoyote ya mabadiliko inayofanya. Kwa hivyo, ikiwa unataka kupata maelezo ya amri ya kubadilisha jina (kama tulivyotumia kwa chaguo la -n), hapa tunatumia chaguo la -v kuchapisha maelezo kamili ya mabadiliko yote yaliyofanywa na amri ya rename kwa mafanikio.

[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. Badilisha herufi ndogo zote kuwa herufi kubwa na Vise-Versa

Ili kubadilisha jina la faili zote zilizo na majina ya herufi ndogo hadi herufi kubwa. Kwa mfano, ninataka kuficha faili hizi zote zifuatazo kutoka kwa herufi ya chini hadi ya juu.

[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

Tu, tumia amri ifuatayo na usemi wa perl.

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

Mara tu ukitekeleza amri iliyo hapo juu, unaweza kuangalia mabadiliko kwa kufanya 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

Unaweza kuona kwamba amri iliyo hapo juu ilibadilisha jina la faili zote za herufi ndogo (na kiendelezi cha .HTML) hadi herufi kubwa.

Vile vile, unaweza pia kubadilisha herufi zote za herufi kubwa hadi herufi ndogo kwa kutumia amri ifuatayo.

[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. Weka herufi kubwa ya Kwanza ya Jina la faili

Ili kuweka herufi kubwa tu ya kila jina la faili tumia amri ifuatayo.

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

6. Batilisha Faili Zilizopo

Ikiwa ungependa kufuta faili zilizopo kwa nguvu, tumia chaguo la -f kama inavyoonyeshwa hapa chini.

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

Ikiwa ungependa kujua zaidi kuhusu amri ya kubadilisha jina, chapa jina jina la mtu kwenye terminal.

Amri ya kubadilisha jina ni muhimu sana, ikiwa unashughulika na kubadilisha jina la faili nyingi au kundi kutoka kwa safu ya amri. Jaribu na unijulishe, ni umbali gani muhimu katika suala la kubadilisha jina la faili.