Preimenuj - orodje ukazne vrstice za preimenovanje več datotek v Linuxu
V Linuxu pogosto uporabimo ukaz »mv« za preimenovanje ene datoteke. Vendar pa preimenovanje več datotek ali skupine datotek zelo oteži nalogo v terminalu.
Linux ima zelo zmogljivo vgrajeno orodje, imenovano preimenovanje. Ukaz za preimenovanje se uporablja za preimenovanje več datotek ali skupine datotek, preimenovanje datotek v male črke, preimenovanje datotek v velike črke in prepisovanje datotek z izrazi perl.
Ukaz "preimenuj" je del skripta Perl in je v številnih distribucijah Linuxa pod "/ usr/bin /". Zaženite lahko ukaz »kateri«, da ugotovite, kje je ukaz za preimenovanje.
$ which rename /usr/bin/rename
rename 's/old-name/new-name/' files
Ukaz za preimenovanje je opremljen z nekaj neobveznimi argumenti in obveznim izrazom perl, ki vodi ukaz za preimenovanje za dejansko delo.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
- -v: Natisni imena datotek, ki so bila uspešno preimenovana.
- -n: Prikažite, katere datoteke bi bile preimenovane.
- -f: Prisilno prepiši obstoječe datoteke.
- perlexpr: Perl Expression.
Za boljše razumevanje tega pripomočka smo v članku obravnavali nekaj praktičnih primerov tega ukaza.
1. Primer osnovnega preimenovanja ukaza
Recimo, da imate kup datotek s pripono .html in želite naenkrat preimenovati vse datoteke .html v ".php". Na primer, najprej naredite “ls -l”, da preverite seznam datotek s pripono “.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
Zdaj želite razširitev vseh teh datotek spremeniti iz ".html" v ".php". Uporabite lahko naslednji ukaz »preimenovanje« z izrazom perl, kot je prikazano spodaj.
[email :~$ rename 's/\.html$/\.php/' *.html
Opomba: V zgornjem ukazu smo uporabili dva argumenta.
- Prvi argument je izraz perl, ki .html nadomesti z .php.
- Drugi argument pove ukazu za preimenovanje, da vse datoteke nadomesti z * .php.
Preverimo, ali so vse datoteke preimenovane v pripono .php, tako da v pozivu naredimo 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
Zdaj lahko zgoraj vidite, da so vse datoteke html preimenovane v php.
2. Preverite spremembe pred zagonom preimenovanja ukaza
Med izvajanjem kritičnih ali večjih nalog preimenovanja lahko spremembe vedno preverite tako, da zaženete ukaz za preimenovanje z argumentom -n. Parameter "-n" vam bo natančno povedal, do kakšnih sprememb bi prišlo, vendar spremembe niso resnično izvedene. Tu je primer spodnjega ukaza.
[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
Opomba: Zgornji izhod ukaza prikazuje samo spremembe, v resnici pa spremembe niso izvedene, razen če ukaz zaženete brez stikala “-n”.
3. Natisni preimenovanje izhoda
Videli smo, da ukaz za preimenovanje ne prikazuje nobenih informacij o spremembah, ki jih naredi. Torej, če želite dobiti podrobnosti o ukazu za preimenovanje (tako kot smo uporabili možnost »-n«), tukaj uporabimo možnost »-v« za natis celotnih podrobnosti vseh sprememb, ki jih je uspešno izvedel ukaz za preimenovanje.
[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. Pretvorite vse male črke v velike in velike verzije
Za paketno preimenovanje vseh datotek z malimi črkami v velike. Na primer, želim vse te naslednje datoteke prikriti iz malih v velike črke.
[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
Samo uporabite naslednji ukaz z izrazom perl.
[email :~$ rename 'y/a-z/A-Z/' *.html
Ko izvedete zgornji ukaz, lahko spremembe preverite tako, da naredite »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
Vidite lahko, da je zgornji ukaz pravzaprav preimenoval vsa majhna imena datotek (s pripono .HTML) v velike črke.
Podobno lahko tudi z velikimi črkami pretvorite v male črke z naslednjim ukazom.
[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. Uporabite veliko črko imena datoteke
Če želite uporabiti samo prvo črko vsakega imena datoteke, uporabite naslednji ukaz.
# rename 's/\b(\w)/\U$1/g' *.ext
6. Prepiši obstoječe datoteke
Če želite na silo prepisati obstoječe datoteke, uporabite možnost “-f”, kot je prikazano spodaj.
[email :~$ rename -f 's/a/b/' *.html
Če želite izvedeti več o ukazu za preimenovanje, v terminalu vnesite “man rename”.
Ukaz za preimenovanje je zelo uporaben, če imate opravka z večkratnim ali paketnim preimenovanjem datotek iz ukazne vrstice. Poskusite in mi sporočite, kako daleč je koristno pri preimenovanju datotek.