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 ]
- -v: Chapisha majina ya faili zilizopewa jina jipya.
- -n: Onyesha ni faili gani zingebadilishwa jina.
- -f: Lazimisha kubatilisha faili zilizopo.
- 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.
- Hoja ya kwanza ni usemi wa perl unaobadilisha .html na .php.
- 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.