പേരുമാറ്റുക - ലിനക്സിൽ ഒന്നിലധികം ഫയലുകൾ പുനർനാമകരണം ചെയ്യുന്നതിനുള്ള ഒരു കമാൻഡ് ലൈൻ ടൂൾ
ലിനക്സിൽ ഒരൊറ്റ ഫയലിന്റെ പേരുമാറ്റാൻ നമ്മൾ പലപ്പോഴും mv കമാൻഡ് ഉപയോഗിക്കുന്നു. എന്നിരുന്നാലും, ഒന്നിലധികം അല്ലെങ്കിൽ കൂട്ടം ഫയലുകളുടെ പേരുമാറ്റുന്നത് ഒരു ടെർമിനലിൽ വളരെ ബുദ്ധിമുട്ടുള്ള കാര്യമാക്കുന്നു.
റീനെയിം എന്ന വളരെ ശക്തമായ ഒരു ബിൽറ്റ്-ഇൻ ടൂളുമായി ലിനക്സ് വരുന്നു. ഒന്നിലധികം അല്ലെങ്കിൽ ഗ്രൂപ്പ് ഫയലുകളുടെ പേരുമാറ്റാനും ഫയലുകളുടെ പേരുമാറ്റാനും ചെറിയക്ഷരത്തിലേക്ക് പേരുമാറ്റാനും ഫയലുകളെ വലിയക്ഷരത്തിലേക്ക് പുനർനാമകരണം ചെയ്യാനും perl എക്സ്പ്രഷനുകൾ ഉപയോഗിച്ച് ഫയലുകൾ പുനരാലേഖനം ചെയ്യാനും റീനെയിം കമാൻഡ് ഉപയോഗിക്കുന്നു.
“rename” കമാൻഡ് പേൾ സ്uക്രിപ്റ്റിന്റെ ഭാഗമാണ്, കൂടാതെ ഇത് പല ലിനക്uസ് വിതരണങ്ങളിലും “/usr/bin/” എന്നതിന് കീഴിലാണ്. പുനർനാമകരണ കമാൻഡിന്റെ സ്ഥാനം കണ്ടെത്താൻ നിങ്ങൾക്ക് ഏത് കമാൻഡ് പ്രവർത്തിപ്പിക്കാം.
$ which rename /usr/bin/rename
rename 's/old-name/new-name/' files
റീനെയിം കമാൻഡ്, നിർബന്ധിത പെർൾ എക്സ്പ്രഷനോടൊപ്പം കുറച്ച് ഓപ്ഷണൽ ആർഗ്യുമെന്റുകളുമായാണ് വരുന്നത്, അത് യഥാർത്ഥ ജോലി ചെയ്യാൻ കമാൻഡിനെ പുനർനാമകരണം ചെയ്യുന്നു.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
- -v: പുനർനാമകരണം ചെയ്ത ഫയലുകളുടെ പേരുകൾ അച്ചടിക്കുക.
- -n: ഏതൊക്കെ ഫയലുകളുടെ പേരുമാറ്റപ്പെടുമെന്ന് കാണിക്കുക.
- -f: നിലവിലുള്ള ഫയലുകൾ തിരുത്തിയെഴുതാൻ നിർബന്ധിക്കുക.
- perlexpr: Perl Expression.
ഈ യൂട്ടിലിറ്റിയെക്കുറിച്ച് നന്നായി മനസ്സിലാക്കുന്നതിന്, ഈ കമാൻഡിന്റെ ചില പ്രായോഗിക ഉദാഹരണങ്ങൾ ഞങ്ങൾ ലേഖനത്തിൽ ചർച്ച ചെയ്തിട്ടുണ്ട്.
1. ഒരു അടിസ്ഥാന പുനർനാമകരണ കമാൻഡ് ഉദാഹരണം
നിങ്ങൾക്ക് .html വിപുലീകരണമുള്ള ഒരു കൂട്ടം ഫയലുകൾ ഉണ്ടെന്നും എല്ലാ .html ഫയലുകളുടെയും പേര് ഒറ്റയടിക്ക് .php എന്നാക്കി മാറ്റണമെന്നും കരുതുക. ഉദാഹരണത്തിന്, .html വിപുലീകരണമുള്ള ഫയലുകളുടെ ലിസ്റ്റ് പരിശോധിക്കാൻ ആദ്യം 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
ഇപ്പോൾ, ഈ എല്ലാ ഫയലുകളുടെയും വിപുലീകരണം “.html” ൽ നിന്ന് “.php“ ലേക്ക് മാറ്റാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു. താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് perl എക്സ്പ്രഷൻ ഉപയോഗിച്ച് താഴെ പറയുന്ന rename കമാൻഡ് ഉപയോഗിക്കാം.
[email :~$ rename 's/\.html$/\.php/' *.html
ശ്രദ്ധിക്കുക: മുകളിലുള്ള കമാൻഡിൽ ഞങ്ങൾ രണ്ട് ആർഗ്യുമെന്റുകൾ ഉപയോഗിച്ചു.
- ഒന്നാം ആർഗ്യുമെന്റ് .html-ന് പകരം .php.
- എല്ലാ ഫയലുകൾക്കും പകരമായി *.php. പേരുമാറ്റുക കമാൻഡിനോട് രണ്ടാമത്തെ ആർഗ്യുമെന്റ് പറയുന്നു.
എല്ലാ ഫയലുകളും .php വിപുലീകരണത്തിലേക്ക് പുനർനാമകരണം ചെയ്തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കാം, പ്രോംപ്റ്റിൽ 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
എല്ലാ html ഫയലുകളും php എന്ന് പുനർനാമകരണം ചെയ്യപ്പെട്ടതായി ഇപ്പോൾ നിങ്ങൾക്ക് മുകളിൽ കാണാം.
2. Rename Command പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് മാറ്റങ്ങൾ പരിശോധിക്കുക
നിർണായകമോ പ്രധാനമോ ആയ പേരുമാറ്റൽ ജോലികൾ ചെയ്യുമ്പോൾ, “-n” ആർഗ്യുമെന്റ് ഉപയോഗിച്ച് പേരുമാറ്റുക കമാൻഡ് പ്രവർത്തിപ്പിച്ച് നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും മാറ്റങ്ങൾ പരിശോധിക്കാം. “-n” പാരാമീറ്റർ എന്ത് മാറ്റങ്ങളാണ് സംഭവിക്കുന്നതെന്ന് കൃത്യമായി നിങ്ങളോട് പറയും, എന്നാൽ മാറ്റങ്ങൾ യഥാർത്ഥമായി ചെയ്യപ്പെടുന്നില്ല. ചുവടെയുള്ള കമാൻഡിന്റെ ഉദാഹരണം ഇതാ.
[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
ശ്രദ്ധിക്കുക: മുകളിലെ കമാൻഡ് ഔട്ട്uപുട്ട് മാറ്റങ്ങൾ മാത്രമേ കാണിക്കൂ, എന്നാൽ യഥാർത്ഥത്തിൽ മാറ്റങ്ങൾ സംഭവിക്കില്ല, നിങ്ങൾ -n സ്വിച്ച് ഇല്ലാതെ കമാൻഡ് പ്രവർത്തിപ്പിച്ചില്ലെങ്കിൽ.
3. പ്രിന്റ് റീനെയിം ഔട്ട്പുട്ട്
പേരുമാറ്റുക കമാൻഡ് അത് ചെയ്യുന്ന മാറ്റങ്ങളുടെ വിവരങ്ങളൊന്നും പ്രദർശിപ്പിക്കുന്നില്ലെന്ന് ഞങ്ങൾ കണ്ടു. അതിനാൽ, നിങ്ങൾക്ക് പേരുമാറ്റുക കമാൻഡിന്റെ വിശദാംശങ്ങൾ ലഭിക്കണമെങ്കിൽ (ഞങ്ങൾ “-n” ഓപ്ഷൻ ഉപയോഗിച്ചത് പോലെ), പുനർനാമകരണ കമാൻഡ് വഴി ചെയ്ത എല്ലാ മാറ്റങ്ങളുടെയും പൂർണ്ണമായ വിശദാംശങ്ങൾ അച്ചടിക്കാൻ ഞങ്ങൾ ഇവിടെ “-v” ഓപ്ഷൻ ഉപയോഗിക്കുന്നു.
[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. എല്ലാ ചെറിയക്ഷരങ്ങളും വലിയക്ഷരത്തിലേക്കും തിരിച്ചും പരിവർത്തനം ചെയ്യുക
ബാച്ച് ചെറിയക്ഷരത്തിലുള്ള എല്ലാ ഫയലുകളുടെയും പേര് വലിയക്ഷരത്തിലേക്ക് മാറ്റുക. ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന എല്ലാ ഫയലുകളും ലോവർ മുതൽ വലിയക്ഷരം വരെ മറയ്ക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു.
[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
വെറും, perl എക്സ്പ്രഷനോടൊപ്പം താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക.
[email :~$ rename 'y/a-z/A-Z/' *.html
മുകളിലുള്ള കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്തുകഴിഞ്ഞാൽ, 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
മുകളിലുള്ള കമാൻഡ് യഥാർത്ഥത്തിൽ എല്ലാ ചെറിയക്ഷര ഫയലുകളുടെ പേരുകളെയും (.HTML എക്സ്റ്റൻഷനോടുകൂടി) വലിയക്ഷരത്തിലേക്ക് പുനർനാമകരണം ചെയ്തതായി നിങ്ങൾക്ക് കാണാൻ കഴിയും.
അതുപോലെ, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് എല്ലാ വലിയക്ഷരങ്ങളും ചെറിയക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്യാനും കഴിയും.
[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. ഫയലിന്റെ പേരിന്റെ ആദ്യ അക്ഷരം വലിയക്ഷരമാക്കുക
ഓരോ ഫയലിന്റെ പേരിന്റെയും ആദ്യ അക്ഷരം മാത്രം വലിയക്ഷരമാക്കാൻ താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക.
# rename 's/\b(\w)/\U$1/g' *.ext
6. നിലവിലുള്ള ഫയലുകൾ തിരുത്തിയെഴുതുക
നിലവിലുള്ള ഫയലുകൾ നിർബന്ധിതമായി തിരുത്തിയെഴുതാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ചുവടെ കാണിച്ചിരിക്കുന്നതുപോലെ “-f” ഓപ്ഷൻ ഉപയോഗിക്കുക.
[email :~$ rename -f 's/a/b/' *.html
പുനർനാമകരണ കമാൻഡിനെക്കുറിച്ച് കൂടുതലറിയാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ടെർമിനലിൽ man rename എന്ന് ടൈപ്പ് ചെയ്യുക.
കമാൻഡ് ലൈനിൽ നിന്ന് ഫയലുകളുടെ ഒന്നിലധികം അല്ലെങ്കിൽ ബാച്ച് പുനർനാമകരണം നിങ്ങൾ കൈകാര്യം ചെയ്യുകയാണെങ്കിൽ, പേരുമാറ്റുക കമാൻഡ് വളരെ ഉപയോഗപ്രദമാണ്. ഫയലുകളുടെ പുനർനാമകരണത്തിന്റെ കാര്യത്തിൽ എത്രത്തോളം ഉപയോഗപ്രദമാണ്, ശ്രമിച്ചുനോക്കൂ, എന്നെ അറിയിക്കൂ.