ഗ്നു/ലിനക്സ് ഷെല്‍ പാഠങ്ങള്‍ – ഭാഗം 7

എം.വി. (mv) കമാന്‍ഡ് : ഫയലുകളും ഡയറക്ടറികളും ഒരിടത്തു നിന്ന് വേറൊരിടത്തേക്ക് മാറ്റുന്നതിനുപയോഗിക്കുന്ന കമാന്‍ഡ് ആണ് എംവി. എംവി എന്നത് മൂവ് (move) എന്ന വാക്കിനെ സൂചിപ്പിക്കുന്നതാണ് . ഇതേ കമാന്‍ഡ് തന്നെ ഫയല്‍ / ഡയറക്റ്ററി യുടെ പേരു മാറ്റുന്നതിനും ഉപയോഗിക്കാം.

ഉപയോഗിക്കുന്ന വിധം:

ഫയലുകള്‍ /ഡയറക്റ്ററികള്‍ എന്നിവ ഒരു ഡയറക്റ്ററിയില്‍ നിന്നും വേറൊരു ഡയറക്റ്ററിയിലേക്ക് മാറ്റുന്നതിന് :

mv കമാന്‍ഡിനു ശേഷം മാറ്റാന്‍ ഉദ്ദേശിക്കുന്ന ഒന്നോ അതിലധികമോ ഫയല്‍ / ഡയറക്റ്ററി കളുടെ പേരുകള്‍ (ആബ്സൊല്യൂട് / റിലേറ്റീവ് പാത്തോടു കൂടി ) നല്കിയ ശേഷം ഏറ്റവും ഒടുവിലായി എങ്ങോട്ടാണോ മാറ്റാന്‍ ഉദ്ദേശിക്കുന്നത്, ആ ഡയറക്റ്ററിയുടെ ആബ്സൊല്യൂട് / റിലേറ്റീവ് പാത്ത് നല്‍കുക. മാറ്റം ചെയ്യേണ്ട ഫയലുകള്‍ / ഡയറക്റ്ററികള്‍ പൊതുവില്‍ സോഴ്സ് (source) എന്നറിയപ്പെടുമ്പോള്‍ ഏതു ഡയറക്റ്ററിയിലേക്കാണോ മാറ്റുന്നത് ആ ഡയറക്റ്ററി ഡെസ്റ്റിനേഷന്‍ / ടാര്‍ഗറ്റ് (destination/ target) എന്നറിയപ്പെടുന്നു.

ഉദാഹരണം: /home/prasobh/LinuxNotes എന്ന ഡയറക്റ്ററിയില്‍ നിന്ന് harddisk.txt എന്ന ഫയല്‍ /tmp/Notes/ എന്ന ഡയറക്റ്ററിയിലേക്ക് മാറ്റാന്‍

mv /home/prasobh/LinuxNotes/harddisk.txt /tmp/Notes/ എന്ന കമാന്‍ഡ് ഉപയോഗിച്ചാല്‍ മതി. താഴെ കാണിച്ച ഉദാഹരണത്തില്‍ harddisk.txt യുടെ റിലേറ്റീവ് പാത്ത് ആണ് ഉപയോഗിച്ചിരിക്കുന്നത്.

[prasobh@localhost LinuxNotes]$ ls

apache.txt bash.txt harddisk.txt

[prasobh@localhost LinuxNotes]$ mv harddisk.txt /tmp/Notes/

[prasobh@localhost LinuxNotes]$ ls

apache.txt bash.txt

[prasobh@localhost LinuxNotes]$ ls /tmp/Notes/

harddisk.txt

ഒന്നില്‍ കൂടുതല്‍ ഡയറക്റ്ററികളോ ഫയലുകളോ ഇതു പോലെ മാറ്റണമെങ്കില്‍ ഇവയുടെയെല്ലാം പേരുകള്‍ /പാത്തുകള്‍ mv കമാന്‍ഡിനും /tmp/Notes/ ഉം ഇടയിലായി നല്‍കിയാല്‍ മതി. താഴെ കാണിച്ച ഉദാഹരണം നോക്കുക.

[prasobh@localhost LinuxNotes]$ mv apache.txt bash.txt /home/prasobh/LinuxHelps /tmp/Notes/

ഇതില്‍ /home/prasobh/LinuxNotes/ എന്ന ഡയറക്റ്ററിയിലെ apache.txt,bash.txt എന്നീ ഫയലുകളും /home/prasobh/LinuxHelps എന്ന ഡയറക്റ്ററിയും /tmp/Notes/ എന്ന ഡയറക്റ്ററിയിലേക്കു നീക്കി.

ഇനി ഈ കമാന്‍ഡില്‍ തന്നെ /home/prasobh/LinuxHelps എന്ന ഡയറക്റ്ററി മുഴുവനായി നീക്കുന്നതിനു പകരം ഡയറക്റ്ററിക്കകത്തെ ഫയലുകള്‍ /tmp/Notes/ ലേക്കു മാറ്റുകയും ഒഴിഞ്ഞ /home/prasobh/LinuxHelps ഡയറക്റ്ററി യഥാസ്ഥാനത്തു നില നിര്‍ത്തുകയും വേണം എന്നു കരുതുക. ഇതിനായി താഴെ പറയുന്ന കമാന്‍ഡ് ഉപയോഗിക്കാം.

[prasobh@localhost]$ mv /home/prasobh/LinuxHelps/* /tmp/Notes/

ഇവിടെ /home/prasobh/LinuxHelps/ നകത്തെ എല്ലാ ഫയലുകളും എന്നു സൂചിപ്പിക്കാന്‍ “*” ഉപയോഗിച്ചിരിക്കുന്നു. ഇതിനു വൈല്‍ഡ്കാര്‍ഡ് (wildcard) എന്നാണ് പറയുക. വൈല്‍ഡ് കാര്‍ഡുകളെ കുറിച്ച് പിന്നീടൊരിക്കല്‍ പറയാം.

mv കമാന്‍ഡില്‍ ശ്രദ്ധിക്കേണ്ട ഒരു കാര്യം നിങ്ങള്‍ സോഴ്സില്‍ നിന്നും മാറ്റുന്ന ഫയലിന്റെ അതേ പേരിലുള്ള ഒരു ഫയല്‍ ഡെസ്റ്റിനേഷന്‍ ഡയറക്റ്ററിയില്‍ നിലവിലുണ്ടെങ്കില്‍ ആ ഫയലിനെ നീക്കം ചെയ്ത് പകരം സോഴ്സിലുള്ള ഫയല്‍ ആ സ്ഥാനത്തേക്ക് നീക്കും – ഈ പ്രവര്‍ത്തി ഓവര്‍ റൈറ്റിങ്ങ് (overwriting)എന്നറിയപ്പെടുന്നു. ഇങ്ങനെ സംഭവിക്കുന്നുണ്ടോ എന്നു അറിയുന്നതിനു വേണ്ടി -i ( interactive) എന്ന ഓപ്ഷന്‍ ഉപയോഗിക്കാവുന്നതാണ്. mv കമാന്‍ഡിനൊപ്പം ഇതുപയോഗിക്കുന്നുണ്ടെങ്കില്‍ ഡെസ്റ്റിനേഷന്‍ ഡയറക്റ്ററിയിലെ ഫയല്‍ നീക്കം ചെയ്യുന്നതിനു മുന്‍പ് ഉപയോക്താവിന് മുന്നറിയിപ്പ് നല്‍കും.

ഇനി ഒരു ഫയല്‍/ഡയറക്റ്ററി യുടെ പേരു മാറ്റണമെങ്കില്‍ mv കമാന്‍ഡിനു ശേഷം ഫയല്‍/ഡയറക്റ്ററി യുടെ നിലവിലുള്ള പേരും അതിനു ശേഷം നല്‍കാനുദ്ദേശിക്കുന്ന പുതിയ പേരും നല്കിയാല്‍ മതി.

/tmp/Notes/ ന്റെ അകത്തുള്ള harddisk.txt എന്ന ഫയലിന്റെ പേര് cddrive.txt എന്നാക്കണം എന്നു കരുതുക.

[prasobh@localhost]$ cd /tmp/Notes/

[prasobh@localhost Notes]$ ls

harddisk.txt

[prasobh@localhost Notes]$ mv harddisk.txt cddrive.txt

[prasobh@localhost Notes]$ ls

cddrive.txt

ഇവിടെ സോഴ്സിന്റെയും ഡെസ്റ്റിനേഷന്റെയും പേരുകള്‍ റിലേറ്റീവ് പാത്ത് ആയി ആണ് നല്‍കിയിരിക്കുന്നത്. ഇത് ആബ്സൊല്യൂട്ട് പാത്ത് ആയും നല്‍കാവുന്നതാണ്. ഇതില്‍ ശ്രദ്ധിക്കേണ്ട കാര്യം പാത്ത് ഏതു രീതിയില്‍ നല്‍കിയാലും സോഴ്സ് ഫയല്‍/ഡയറക്റ്ററി എതു ഡയറക്റ്ററിക്കകത്താണോ അതേ ഡയറക്റ്ററിക്കകത്തായിരിക്കണം പുതുതായി നല്കുന്ന പേരും വരേണ്ടത് എന്നാണ്.

mv യെക്കുറിച്ച് കൂടുതലറിയാന്‍ “man mv” കമാന്‍ഡ് ഉപയോഗിക്കുക.