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 ]
- -v: I-print ang mga ngalan sa mga file nga malampusong nabag-o sa ngalan.
- -n: Ipakita kung unsa nga mga file ang palitan unta og ngalan.
- -f: Puwersa nga i-overwrite ang kasamtangan nga mga file.
- 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.
- Ang unang argumento kay perl nga ekspresyon nga gipuli ang .html sa .php.
- 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.