Preimenuj – Alat komandne linije za preimenovanje više datoteka u Linuxu


Često koristimo naredbu “mv” za preimenovanje jedne datoteke u Linuxu. Međutim, brzo preimenovanje više ili grupe datoteka čini vrlo teškim zadatkom u terminalu.

Linux dolazi sa veoma moćnim ugrađenim alatom koji se zove preimenuj. Komanda preimenuj se koristi za preimenovanje više ili grupe fajlova, preimenovanje datoteka u mala slova, preimenovanje datoteka u velika i prepisivanje datoteka koristeći perl izraze.

Komanda “preimenuj” je dio Perl skripte i nalazi se pod “/usr/bin/” na mnogim Linux distribucijama. Možete pokrenuti naredbu “which” da saznate lokaciju naredbe za preimenovanje.

which rename
/usr/bin/rename
Osnovna sintaksa naredbe za preimenovanje
rename 's/old-name/new-name/' files

Komanda preimenovanja dolazi sa nekoliko opcionih argumenata zajedno sa obaveznim perl izrazom koji vodi komandu preimenovanja da obavi stvarni posao.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
  1. -v: Ispis imena datoteka koje su uspješno preimenovane.
  2. -n: Prikažite koje datoteke bi bile preimenovane.
  3. -f: Prisilno prepisati postojeće fajlove.
  4. perlexpr: Perl izraz.

Za bolje razumijevanje ovog uslužnog programa, u članku smo raspravljali o nekoliko praktičnih primjera ove naredbe.

1. Osnovni primjer naredbe za preimenovanje

Pretpostavimo da imate gomilu fajlova sa ekstenzijom “.html” i želite da preimenujete sve “.html” fajlove u “.php” u jednom potezu. Na primjer, prvo napravite “ls -l” da provjerite listu datoteka sa ekstenzijom “.html”.

ravisaive@tecmint:~$ 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 da promenite ekstenziju svih ovih fajlova iz „.html” u „.php“. Možete koristiti sljedeću naredbu “preimenuj” sa perl izrazom kao što je prikazano ispod.

ravisaive@tecmint:~$ rename 's/\.html$/\.php/' *.html

Napomena: U gornjoj naredbi koristili smo dva argumenta.

  1. Prvi argument je perl izraz koji zamjenjuje .html sa .php.
  2. Drugi argument govori komandi preimenovanja da zamijeni sve datoteke sa *.php.

Provjerimo da li su svi fajlovi preimenovani u ekstenziju “.php”, koristeći ls -l na promptu.

ravisaive@tecmint:~$ 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 možete vidjeti iznad da su svi html fajlovi preimenovani u php.

2. Provjerite promjene prije pokretanja naredbe Preimenuj

Dok obavljate kritične ili velike zadatke preimenovanja, uvijek možete provjeriti promjene tako što ćete pokrenuti naredbu za preimenovanje s argumentom “-n”. Parametar “-n” će vam reći tačno koje promjene će se dogoditi, ali promjene se ne rade stvarno. Evo primjera naredbe ispod.

ravisaive@tecmint:~$ 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 komande prikazuje samo promjene, ali u stvarnosti promjene nisu urađene, osim ako ne pokrenete naredbu bez prekidača “-n”.

3. Print Rename Output

Vidjeli smo da komanda za preimenovanje nije prikazala nikakve informacije o promjenama koje radi. Dakle, ako želite da dobijete detalje komande preimenovanja (kao što smo mi uradili koristeći opciju “-n”), ovde koristimo opciju “-v” da ispišemo kompletnu detalji o svim promjenama koje je uspješno izvršila naredba preimenuj.

ravisaive@tecmint:~$ 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 sva mala slova u velika i obrnuto

Za grupno preimenovanje svih fajlova s imenima malim slovima u velika slova. Na primjer, želim prekriti sve ove sljedeće fajlove iz mala u . >velika slova.

Od malih u velika slova
ravisaive@tecmint:~$ 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 koristite sljedeću naredbu sa perl izrazom.

ravisaive@tecmint:~$ rename 'y/a-z/A-Z/' *.html

Nakon što izvršite gornju naredbu, možete provjeriti promjene tako što ćete uraditi „ls -l“.

ravisaive@tecmint:~$ 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 komanda zapravo preimenovala sva imena datoteka malih slova (sa ekstenzijom .HTML) u velika slova.

Velika do mala slova

Slično, također možete pretvoriti sve znakove velika slova u mala slova koristeći sljedeću naredbu.

ravisaive@tecmint:~$ rename 'y/A-Z/a-z/' *.HTML
ravisaive@tecmint:~$ 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. Napišite veliko slovo imena datoteke

Za pisanje samo velikim početnim slovom svakog imena datoteke koristite sljedeću naredbu.


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

6. Prebrišite postojeće datoteke

Ako želite nasilno prepisati postojeće datoteke, koristite opciju “-f” kao što je prikazano ispod.

ravisaive@tecmint:~$ rename -f 's/a/b/' *.html

Ako želite da saznate više o naredbi za preimenovanje, upišite “man rename” u terminal.

Komanda preimenuj je veoma korisna ako imate posla sa višestrukim ili grupnim preimenovanjem fajlova iz komandne linije. Pokušajte i javite mi koliko je korisno u smislu preimenovanja datoteka.