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

ഫയലുകളും ഡയറക്റ്ററികളും കംപ്യൂട്ടറില്‍ നിന്നും നീക്കം ചെയ്യുന്നതിനുള്ള കമാന്‍ഡ് ആണ്  ആര്‍.എം. (rm). ഈ  കമാന്റ് ഉപയോഗിക്കുന്ന വിധം : rm കമാന്‍ഡിനു ശേഷം നീക്കം ചെയ്യേണ്ട ഒന്നോ അതില്‍ കൂടുതലോ ഫയലുകളോ ഡയറക്റ്ററികളോ ഓരോ സ്പെയ്സുകള്‍ ഇട വിട്ട് നല്‍കുകയാണ് ഏറ്റവും അടിസ്ഥാനമായ ഉപയോഗ രീതി.  ആവശ്യമെങ്കില്‍ പ്രത്യേക ഓപ്ഷനുകള്‍ rm കമാന്‍ഡിനും ഫയല്‍ / ഡയറക്റ്ററി കളുടെ പേരിനും ഇടയിലായി നല്കാവുന്നതാണ്.  ഡയറക്റ്ററി / ഫയല്‍ ന്റെ പേര് ആബ്സൊല്യൂട്ടോ റിലേറ്റീവോ ആയ പാത്തുകള്‍ ആയി വേണം നല്‍കാന്‍.

ഒരു ഉദാഹരണം നോക്കാം:
MyNotes എന്ന ഡയറക്റ്ററിയില്‍ നിന്നും gazal.txt എന്ന ഫയല്‍ നീക്കം ചെയ്യാന്‍ ആ ഡയറക്റ്ററിക്കകത്തു നിന്നും rm എന്ന കമാന്‍ഡിനു ശേഷം gazal.txt എന്നു നല്‍കിയാല്‍ മതി.

[prasobh@localhost MyNotes]$ ls
backup  bsd-certifications.txt  dupauth.txt  gazal.txt  interview.txt  ip-network.ml.txt  LinuxScripting.txt  vbox-gns.txt  vpn-howto.txt
[prasobh@localhost MyNotes]$ rm gazal.txt
[prasobh@localhost MyNotes]$ ls
backup  bsd-certifications.txt  dupauth.txt  interview.txt  ip-network.ml.txt  LinuxScripting.txt  vbox-gns.txt  vpn-howto.txt

ഇതേ കമാന്‍ഡ് ആബ്സൊല്യൂട്ട് പാത്ത്  ചേര്‍ത്ത് ഇങ്ങനെ ഉപയോഗിക്കാം:
[prasobh@localhost tmp]$ rm  /home/prasobh/MyNotes/gazal.txt

ഇനി മേല്‍പറഞ്ഞ ഡയറക്റ്ററിയില്‍ നിന്ന് ഒന്നില്‍ കൂടുതല്‍ ഫയലുകള്‍ നീക്കം ചെയ്യണം എന്നുണ്ടെങ്കില്‍ താഴെപറയും വിധം ചെയ്യാവുന്നതാണ്.

[prasobh@localhost MyNotes]$ rm ip-network.ml.txt LinuxScripting.txt vbox-gns.txt
[prasobh@localhost MyNotes]$ ls
backup  bsd-certifications.txt  dupauth.txt  interview.txt  vpn-howto.txt

ഇനി ഡയറക്റ്ററി നീക്കം ചെയ്യുന്നതെങ്ങനെയാണെന്നു നോക്കാം.  MyNotes എന്ന ഡയറക്റ്ററിക്കുളില്‍ backup എന്നതു ഒരു ഡയറക്റ്ററി ആണ്.  ഫയല്‍ നീക്കം ചെയ്ത അതേ രീതിയില്‍ ഡയറക്റ്ററി നീക്കം ചെയ്യാന്‍ ഒന്നു ശ്രമിച്ചു നോക്കാം.

[prasobh@localhost MyNotes]$ rm backup/
rm: cannot remove `backup/’: Is a directory

സാധാരണ ഫയലുകള്‍ നീക്കം ചെയ്യുന്ന അതേ രീതിയില്‍ ഡയറക്റ്ററികള്‍ നീക്കം ചെയ്യാനാവില്ല എന്നു മനസ്സിലായല്ലോ, ഇതിനു വേണ്ടി നമുക്കു “-r” എന്ന ഓപ്ഷന്‍ ഉപയോഗിക്കേണ്ടി വരും.

[prasobh@localhost MyNotes]$ rm -r backup/
[prasobh@localhost MyNotes]$ ls
bsd-certifications.txt  dupauth.txt  interview.txt  vpn-howto.txt

ഉപയോഗപ്രദമായ ഒരു ഓപ്ഷനാണ് “-i” (interactive എന്നു സൂചിപ്പിക്കുന്നു ).  ഈ ഓപ്ഷന്‍ ഉപയോഗിച്ചാല്‍ ഓരോ ഫയലും നീക്കം ചെയ്യുന്നതിനു മുന്‍പ് ഉപയോക്താവിന്റെ സമ്മതം ചോദിക്കും.  ആവശ്യമുള്ള ഫയലുകള്‍ അബദ്ധത്തില്‍ നീക്കം ചെയ്യുമോ എന്നു ഭയമുണ്ടെങ്കില്‍ ഈ ഓപ്ഷന്‍ ഉപയോഗിക്കാവുന്നതാണ്.

[prasobh@localhost MyNotes]$ ls
bsd-certifications.txt  dupauth.txt  interview.txt  vpn-howto.txt
[prasobh@localhost MyNotes]$ rm -i vpn-howto.txt interview.txt
rm: remove regular file `vpn-howto.txt’? y
rm: remove regular file `interview.txt’? n
[prasobh@localhost MyNotes]$ ls
bsd-certifications.txt  dupauth.txt  interview.txt

മുകളില്‍ “vpn-howto.txt'” എന്ന ഫയല്‍ നീക്കം ചെയ്യണോ എന്ന ചോദ്യത്തിന് അതെ എന്ന അര്‍ഥത്തില്‍ y (yes) എന്നും “interview.txt'” നീക്കം ചെയ്യേണ്ട എന്ന അര്‍ഥത്തില്‍ n (no) എന്നും നല്‍കി.  അതിനാല്‍ vpn-howto.txt  നീക്കം ചെയ്യുകയും interview.txt നില നിര്‍ത്തുകയും ചെയ്തു.

ചില സാഹചര്യങ്ങളില്‍ ഓപറേറ്റിങ്ങ് സിസ്റ്റം നമ്മള്‍ ആവശ്യപ്പെടാതെ തന്നെ “-i” എന്ന ഓപ്ഷന്‍ ഉപയോഗിക്കും.  ഉദാഹരണത്തിന്  ഒരു ഉപയോക്താവിന് ഒരു ഡയറക്റ്ററിക്കകത്ത് മാറ്റങ്ങള്‍ വരുത്താനുള്ള അനുവാദം ഉണ്ടെന്നിരിക്കട്ടെ, ആ ഡയറക്റ്ററിക്കകത്ത്  വേറൊരു ഉപയോക്താവിന്റെ ഉടമസ്ഥതയില്‍ ഉള്ള ഒരു ഫയല്‍ ഉണ്ടെന്നും വെക്കുക.  ഡയറക്റ്ററിയുടെ ഉടമസ്ഥനായ ഉപയോക്താവ് അതിനെ നീക്കം ചെയ്യാന്‍ ശ്രമിക്കുകയാണെങ്കില്‍ നീക്കം ചെയ്യുന്നതിനു മുന്‍പു ഓ.എസ്.  വീണ്ടും ചോദിച്ച് ഉറപ്പു വരുത്തും.

[prasobh@localhost MyNotes]$ ls -ld ~/MyNotes
drwxr-xr-x 3 prasobh prasobh 4096 2009-09-15 00:18 /home/prasobh/MyNotes
[prasobh@localhost MyNotes]$ ls -l
total 16
-rwx—— 1 prasobh prasobh   48 2009-08-03 21:13 bsd-certifications.txt
-rwx—— 1 prasobh prasobh  553 2009-08-03 21:13 dupauth.txt
-rwx—— 1 prasobh prasobh 1828 2009-08-03 21:13 interview.txt
-rw-r–r– 1 riyad  riyad     0 2009-09-15 00:17 myblog.txt
[prasobh@localhost MyNotes]$ rm myblog.txt
rm: remove write-protected regular empty file `myblog.txt’? y
[prasobh@localhost MyNotes]$ ls
bsd-certifications.txt  dupauth.txt  interview.txt

ഇവിടെ prasobh എന്ന ഉപയോക്താവിന്റെ ഉടമസ്ഥതയിലുള്ള ഡയറക്റ്ററിക്കകത്ത്  riyad എന്ന ഉപയോക്താവിന്റെ ഉടമസഥതയിലുള്ള myblog.txt എന്ന ഫയല്‍ ഉണ്ട്.  ഇതിനെ നീക്കം ചെയ്യാന്‍ ശ്രമിക്കുമ്പോള്‍ ഓ.ഏസ്  വീണ്ടും ചോദിച്ച് ഉറപ്പു വരുത്തുന്നത് കണ്ടല്ലോ.  ഒറ്റ ഫയല്‍ മാത്രമുള്ള സാഹചര്യങ്ങളില്‍ പ്രശ്നമാകാറില്ലെങ്കിലും ഒരുപാടു ഫയലുകള്‍ ഒന്നിച്ചു നീക്കം ചെയ്യുമ്പോള്‍ ഇതൊരു ബുദ്ധിമുട്ടായി മാറാം. ഇതൊഴിവാക്കാന്‍ -f ( force –  നിര്‍ബന്ധപൂര്‍വം ) എന്ന ഓപ്ഷന്‍ ഉപയോഗിച്ചാല്‍ മതി.

[prasobh@localhost MyNotes]$ ls -l
total 16
-rw-r–r– 1 riyad  riyad     0 2009-09-15 00:28 biodata.txt
-rwx—— 1 prasobh prasobh   48 2009-08-03 21:13 bsd-certifications.txt
-rw-r–r– 1 riyad  riyad     0 2009-09-15 00:28 cyber.txt
-rwx—— 1 prasobh prasobh  553 2009-08-03 21:13 dupauth.txt
-rwx—— 1 prasobh prasobh 1828 2009-08-03 21:13 interview.txt
[prasobh@localhost MyNotes]$ rm -rf biodata.txt  cyber.txt
[prasobh@localhost MyNotes]$ ls
bsd-certifications.txt  dupauth.txt  interview.txt

rm കമാന്‍ഡിനെ കുറിച്ച് കൂടുതല്‍ അറിയാന്‍ man rm ഉപയോഗിക്കാം.

ലിനക്സിലെ ഏറ്റവും അപകടകാരിയായ ഒരു കമാന്‍ഡ് ആണ്  rm.  ലിനക്സില്‍ ഡാറ്റാ റിക്കവറിക്കു പല വഴികളുമുണ്ടെങ്കിലും ഒരു സാധാരണ ഉപയോക്താവിന് ഒരിക്കല്‍ നീക്കം ചെയ്ത ഫയലുകള്‍ വീണ്ടെടുക്കുക എന്നതു പ്രായോഗികമായി അസാധ്യം തന്നെയാണ് .  അതിനാല്‍ rm കമാന്‍ഡ് ഉപയോഗിക്കുമ്പോള്‍ ശരിയായ ഡയറക്റ്ററി അല്ലെങ്കില്‍ ഫയല്‍ ന്റെ മേല്‍ ആണ് അതു പ്രയോഗിക്കുന്നതു എന്നു ഉറപ്പു വരുത്തണം.