Rename - Usa ka Tool sa Command Line Alang sa Pag-usab sa Daghang mga File sa Linux


Kanunay namong gigamit ang mv nga sugo aron mabag-o ang ngalan sa usa ka file sa Linux. Bisan pa, ang pagbag-o sa ngalan sa daghang o grupo sa mga file dali nga naghimo niini nga lisud kaayo nga buluhaton sa usa ka terminal.

Ang Linux adunay usa ka kusgan kaayo nga built-in nga himan nga gitawag pagbag-o sa ngalan. Ang rename command gigamit sa pag-usab sa ngalan sa daghang o grupo sa mga file, pag-ilis sa mga file ngadto sa lowercase, pag-ilis sa mga file ngadto sa uppercase ug pag-overwrite sa mga file gamit ang perl expressions.

Ang bag-o nga ngalan nga sugo usa ka bahin sa Perl script ug kini nagpuyo ubos sa/usr/bin/sa daghang mga distribusyon sa Linux. Mahimo nimong ipadagan ang unsa nga mando aron mahibal-an ang lokasyon sa pag-usab sa ngalan.

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

Ang rename command adunay pipila ka mga opsyonal nga argumento uban sa mandatory perl expression nga naggiya sa rename command aron sa pagbuhat sa aktuwal nga trabaho.

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

  1. -v: I-print ang mga ngalan sa mga file nga malampusong nabag-o sa ngalan.
  2. -n: Ipakita kung unsa nga mga file ang palitan unta og ngalan.
  3. -f: Puwersa nga i-overwrite ang kasamtangan nga mga file.
  4. perlexpr: Perl Expression.

Alang sa mas maayo nga pagsabot sa kini nga gamit, among gihisgutan ang pipila ka praktikal nga mga pananglitan niini nga sugo sa artikulo.

1. Usa ka Panguna nga Pagbag-o sa Ngalan nga Ehemplo sa Sugo

Ibutang ta nga ikaw adunay pundok sa mga file nga adunay .html nga extension ug gusto nimo nga ilisan ang tanan nga .html nga mga file ngadto sa .php sa usa ka go. Pananglitan, buhata una ang ls -l aron susihon ang lista sa mga file nga adunay extension nga .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

Karon, gusto nimong usbon ang extension sa tanan niini nga mga file gikan sa .html ngadto sa .php. Mahimo nimong gamiton ang mosunod nga rename nga sugo nga adunay perl nga ekspresyon sama sa gipakita sa ubos.

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

Mubo nga sulat: Sa sugo sa ibabaw gigamit namo ang duha ka argumento.

  1. Ang unang argumento kay perl nga ekspresyon nga gipuli ang .html sa .php.
  2. Ang ikaduhang argumento nagsulti sa rename command aron ilisan ang tanang file sa *.php.

Atong pamatud-an kung ang tanan nga mga file gibag-o sa .php nga extension, naghimo sa ls -l sa prompt.

[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

Karon imong makita sa ibabaw nga ang tanan nga mga html nga mga file gibag-o sa ngalan sa php.

2. Susiha ang mga Kausaban Sa Dili pa Modagan ang Rename Command

Samtang naghimo sa mga kritikal o dagkong mga buluhaton sa pag-usab sa ngalan, mahimo nimo kanunay nga susihon ang mga pagbag-o pinaagi sa pagpadagan sa rename command nga adunay -n nga argumento. Ang parameter nga -n magsulti kanimo sa eksakto kung unsa nga mga pagbag-o ang mahitabo, apan ang mga pagbag-o wala gihimo sa tinuud. Dinhi, mao ang pananglitan sa sugo sa ubos.

[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

Mubo nga sulat: Ang labaw nga command output nagpakita lamang sa mga pagbag-o, apan sa tinuod ang mga pagbag-o wala nahimo, gawas kung imong gipadagan ang command nga walay -n switch.

3. I-print ang Rename Output

Nakita namon nga ang rename command wala magpakita sa bisan unsang kasayuran sa mga pagbag-o nga gihimo niini. Mao nga, kung gusto nimo makuha ang mga detalye sa rename command (sama sa among gihimo gamit ang -n nga kapilian), dinhi gigamit namon ang -v nga kapilian aron maimprinta ang kompleto nga mga detalye sa tanan nga mga pagbag-o nga nahimo pinaagi sa pag-usab sa mando nga malampuson.

[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. I-convert ang tanang Lowercase ngadto sa Uppercase ug Vise-Versa

Pag-usab sa ngalan sa batch sa tanan nga mga file nga adunay gamay nga mga ngalan sa letra sa taas nga letra. Pananglitan, gusto nako nga tagoan ang tanan nga mosunod nga mga file gikan sa ubos hangtod sa taas nga letra.

[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

Lang, gamita ang mosunod nga sugo nga adunay perl nga ekspresyon.

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

Kung nahuman na nimo ang mando sa ibabaw, mahimo nimong susihon ang mga pagbag-o pinaagi sa pagbuhat sa 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

Imong makita nga ang sugo sa ibabaw sa tinuod nag-ilis sa ngalan sa tanang lower case file names (uban sa .HTML extension) ngadto sa upper case.

Sa susama, mahimo nimo usab nga i-convert ang tanan nga upper case nga mga karakter ngadto sa lower case gamit ang mosunod nga command.

[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. I-capitalize ang Unang Letra sa Filename

Sa pag-capital lamang sa unang letra sa matag filename gamita ang mosunod nga sugo.

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

6. I-overwrite ang Anaa nga mga File

Kung gusto nimo nga pugson nga i-overwrite ang naa na nga mga file, gamita ang -f nga kapilian sama sa gipakita sa ubos.

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

Kung gusto nimo mahibal-an ang dugang bahin sa rename command, i-type ang man rename sa terminal.

Ang rename command mapuslanon kaayo, kung nag-atubang ka sa daghang o batch nga pagbag-o sa ngalan sa mga file gikan sa command line. Sulayi ug ipahibalo kanako, kung unsa ka layo ang mapuslanon sa mga termino sa pagbag-o sa ngalan sa mga file.