Preimenuj - Alat naredbenog retka za preimenovanje više datoteka u Linuxu
Često koristimo naredbu "mv" za preimenovanje jedne datoteke u Linuxu. Međutim, preimenovanje više datoteka ili grupa datoteka brzo otežava posao u terminalu.
Linux dolazi s vrlo moćnim ugrađenim alatom koji se zove preimenovanje. Naredba preimenovanja koristi se za preimenovanje višestrukih ili grupa datoteka, preimenovanje datoteka u mala slova, preimenovanje datoteka u velika slova i prepisivanje datoteka pomoću izraza perl.
Naredba "preimenovati" dio je Perl skripte i nalazi se pod "/ usr/bin /" na mnogim Linux distribucijama. Možete pokrenuti naredbu "which" da biste saznali mjesto naredbe za preimenovanje.
$ which rename /usr/bin/rename
rename 's/old-name/new-name/' files
Naredba za preimenovanje dolazi s nekoliko neobaveznih argumenata, zajedno sa obaveznim perl izrazom koji vodi naredbu za preimenovanje za obavljanje stvarnih poslova.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
- -v: Ispis imena datoteka koje su uspješno preimenovane.
- -n: Prikaži koje bi datoteke bile preimenovane.
- -f: Prisilno prepisivanje postojećih datoteka.
- perlexpr: Perl Expression.
Da bismo bolje razumjeli ovu uslužnu uslugu, u članku smo razmotrili nekoliko praktičnih primjera ove naredbe.
1. Primjer osnovne naredbe za preimenovanje
Pretpostavimo da imate hrpu datoteka s nastavkom ".html" i želite odjednom preimenovati sve datoteke ".html" u ".php". Na primjer, prvo napravite "ls -l" da biste provjerili popis datoteka s nastavkom ".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
Sada želite promijeniti ekstenziju svih ovih datoteka iz ".html" u ".php". Možete upotrijebiti sljedeću naredbu "preimenovati" s perl izrazom kao što je prikazano dolje.
[email :~$ rename 's/\.html$/\.php/' *.html
Napomena: U gornjoj naredbi koristili smo dva argumenta.
- Prvi argument je perl izraz koji zamjenjuje .html s .php.
- Drugi argument govori naredbi preimenovanja da sve datoteke zamijeni * .php.
Provjerimo jesu li sve datoteke preimenovane u ekstenziju ".php", radeći ls -l u odzivu.
[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
Sada gore možete vidjeti da su sve html datoteke preimenovane u php.
2. Provjerite promjene prije pokretanja naredbe za preimenovanje
Dok radite kritične ili glavne zadatke preimenovanja, uvijek možete provjeriti promjene pokretanjem naredbe za preimenovanje s argumentom "-n". Parametar "-n" točno će vam reći kakve bi se promjene dogodile, ali promjene nisu stvarne. Evo primjera naredbe u nastavku.
[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
Napomena: Gornji izlaz naredbe prikazuje samo promjene, ali u stvarnosti promjene se ne rade, osim ako naredbu ne pokrenete bez prekidača “-n”.
3. Ispis preimenuj izlaz
Vidjeli smo da naredba za preimenovanje ne prikazuje nikakve informacije o promjenama koje čini. Dakle, ako želite dobiti detalje naredbe za preimenovanje (kao što smo to učinili koristeći opciju "-n"), ovdje koristimo opciju "-v" za ispis kompletnih detalja svih promjena koje je naredba za preimenovanje uspješno izvršila.
[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 sve male u velike i Vise-Versa
Za skupno preimenovanje svih datoteka s malim slovima u velika slova. Na primjer, želim prikriti sve ove sljedeće datoteke od malih do velikih slova.
[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, upotrijebite sljedeću naredbu s perl izrazom.
[email :~$ rename 'y/a-z/A-Z/' *.html
Nakon što izvršite gornju naredbu, možete provjeriti promjene radeći "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
Možete vidjeti da je gornja naredba zapravo preimenovala sva mala imena datoteka (s nastavkom .HTML) u velika.
Slično tome, pomoću sljedeće naredbe možete pretvoriti i sve velike početne znakove u male.
[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. Veliko početno slovo naziva datoteke
Da biste napisali veliko početno slovo svakog imena datoteke, upotrijebite sljedeću naredbu.
# rename 's/\b(\w)/\U$1/g' *.ext
6. Prepiši postojeće datoteke
Ako želite prisilno prebrisati postojeće datoteke, upotrijebite opciju "-f" kao što je prikazano u nastavku.
[email :~$ rename -f 's/a/b/' *.html
Ako želite znati više o naredbi za preimenovanje, upišite "man rename" u terminal.
Naredba preimenovanja vrlo je korisna ako imate posla s višestrukim ili skupnim preimenovanjem datoteka iz naredbenog retka. Pokušajte i javite mi koliko je korisno u smislu preimenovanja datoteka.