Linux-ൽ ഒരു വലിയ ഫയൽ ഉള്ളടക്കം ശൂന്യമാക്കാനോ ഇല്ലാതാക്കാനോ ഉള്ള 5 വഴികൾ


ഇടയ്ക്കിടെ, Linux ടെർമിനലിൽ ഫയലുകൾ കൈകാര്യം ചെയ്യുമ്പോൾ, ഏതെങ്കിലും Linux കമാൻഡ് ലൈൻ എഡിറ്ററുകൾ ഉപയോഗിച്ച് ഒരു ഫയലിന്റെ ഉള്ളടക്കം തുറക്കാതെ തന്നെ അത് മായ്uക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം. ഇത് എങ്ങനെ നേടാനാകും? ഈ ലേഖനത്തിൽ, ചില ഉപയോഗപ്രദമായ കമാൻഡുകളുടെ സഹായത്തോടെ ഫയൽ ഉള്ളടക്കം ശൂന്യമാക്കുന്നതിനുള്ള വിവിധ മാർഗങ്ങളിലൂടെ ഞങ്ങൾ കടന്നുപോകും.

മുൻകരുതൽ: ഞങ്ങൾ വിവിധ വഴികൾ നോക്കുന്നതിന് മുമ്പ്, ലിനക്സിൽ എല്ലാം ഒരു ഫയലായതിനാൽ, നിങ്ങൾ ശൂന്യമാക്കുന്ന ഫയൽ(കൾ) പ്രധാനപ്പെട്ട ഉപയോക്തൃ അല്ലെങ്കിൽ സിസ്റ്റം ഫയലുകളല്ലെന്ന് നിങ്ങൾ എപ്പോഴും ഉറപ്പാക്കണം. ഒരു നിർണായകമായ സിസ്റ്റത്തിന്റെയോ കോൺഫിഗറേഷൻ ഫയലിന്റെയോ ഉള്ളടക്കം മായ്uക്കുന്നത് ഒരു മാരകമായ ആപ്ലിക്കേഷൻ/സിസ്റ്റം പിശക് അല്ലെങ്കിൽ പരാജയത്തിലേക്ക് നയിച്ചേക്കാം.

കമാൻഡ് ലൈനിൽ നിന്ന് ഫയൽ ഉള്ളടക്കം മായ്uക്കുന്നതിനുള്ള മാർഗങ്ങൾ ചുവടെയുണ്ട്.

പ്രധാനം: ഈ ലേഖനത്തിന്റെ ഉദ്ദേശ്യത്തിനായി, ഇനിപ്പറയുന്ന ഉദാഹരണങ്ങളിൽ ഞങ്ങൾ ഫയൽ access.log ഉപയോഗിച്ചു.

1. ശൂന്യതയിലേക്ക് റീഡയറക്uട് ചെയ്uത് ഫയൽ ഉള്ളടക്കം ശൂന്യമാക്കുക

ഷെൽ null (നിലവിലില്ലാത്ത ഒബ്uജക്uറ്റ്) ഉപയോഗിച്ച് ഫയലിലെ ഉള്ളടക്കം ശൂന്യമാക്കാനോ ശൂന്യമാക്കാനോ ഉള്ള എളുപ്പവഴി താഴെ പറയുന്ന രീതിയിൽ:

# > access.log

2. 'true' കമാൻഡ് റീഡയറക്ഷൻ ഉപയോഗിച്ച് ഫയൽ ശൂന്യമാക്കുക

ഇവിടെ നമ്മൾ ഒരു ചിഹ്നം ഉപയോഗിക്കും : എന്നത് ഒരു ഷെൽ ബിൽറ്റ്-ഇൻ കമാൻഡ് ആണ്, അത് true കമാൻഡിന് തുല്യമായ സാരാംശമാണ്, ഇത് ഒരു നോ-ഓപ് ആയി ഉപയോഗിക്കാം (ഓപ്പറേഷൻ ഇല്ല) .

: അല്ലെങ്കിൽ true ബിൽറ്റ്-ഇൻ കമാൻഡിന്റെ ഔട്ട്പുട്ട് ഫയലിലേക്ക് റീഡയറക്uട് ചെയ്യുക എന്നതാണ് മറ്റൊരു രീതി:

# : > access.log
OR 
# true > access.log

3. /dev/null ഉള്ള cat/cp/dd യൂട്ടിലിറ്റികൾ ഉപയോഗിച്ച് ഫയൽ ശൂന്യമാക്കുക

Linux-ൽ, null ഉപകരണം അടിസ്ഥാനപരമായി ഒരു പ്രോസസ്സിന്റെ അനാവശ്യ ഔട്ട്uപുട്ട് സ്ട്രീമുകൾ നിരസിക്കാൻ ഉപയോഗിക്കുന്നു, അല്ലെങ്കിൽ ഇൻപുട്ട് സ്ട്രീമുകൾക്ക് അനുയോജ്യമായ ഒരു ശൂന്യ ഫയലായി ഉപയോഗിക്കുന്നു. ഇത് സാധാരണയായി റീഡയറക്ഷൻ മെക്കാനിസമാണ് ചെയ്യുന്നത്.

അതിനാൽ /dev/null ഉപകരണ ഫയൽ അതിലേക്ക് അയച്ച ഏതെങ്കിലും ഇൻപുട്ടിനെ എഴുതിത്തള്ളുന്ന (നീക്കം ചെയ്യുന്ന) ഒരു പ്രത്യേക ഫയലാണ് അല്ലെങ്കിൽ അതിന്റെ ഔട്ട്uപുട്ട് ഒരു ശൂന്യമായ ഫയലിന് തുല്യമാണ്.

കൂടാതെ, cat കമാൻഡ് ഉപയോഗിച്ച് ഇൻപുട്ടായി /dev/null എന്നതിന്റെ (ഫയൽ) ഔട്ട്uപുട്ട് റീഡയറക്uട് ചെയ്uത് നിങ്ങൾക്ക് ഒരു ഫയലിന്റെ ഉള്ളടക്കം ശൂന്യമാക്കാനാകും:

# cat /dev/null > access.log

അടുത്തതായി, കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു ഫയൽ ഉള്ളടക്കം ശൂന്യമാക്കാൻ ഞങ്ങൾ cp കമാൻഡ് ഉപയോഗിക്കും.

# cp /dev/null access.log

ഇനിപ്പറയുന്ന കമാൻഡിൽ, if എന്നത് ഇൻപുട്ട് ഫയൽ എന്നാണ് അർത്ഥമാക്കുന്നത്, of എന്നത് ഔട്ട്പുട്ട് ഫയലിനെയാണ് സൂചിപ്പിക്കുന്നത്.

# dd if=/dev/null of=access.log

4. എക്കോ കമാൻഡ് ഉപയോഗിച്ച് ഫയൽ ശൂന്യമാക്കുക

ഇവിടെ, നിങ്ങൾക്ക് ഒരു ശൂന്യമായ സ്ട്രിംഗ് ഉപയോഗിച്ച് ഒരു എക്കോ കമാൻഡ് ഉപയോഗിക്കാനും അത് ഇനിപ്പറയുന്ന രീതിയിൽ ഫയലിലേക്ക് റീഡയറക്ട് ചെയ്യാനും കഴിയും:

# echo "" > access.log
OR
# echo > access.log

ശ്രദ്ധിക്കുക: ഒരു ശൂന്യമായ സ്ട്രിംഗും ശൂന്യവും ഒന്നുമല്ലെന്ന് നിങ്ങൾ ഓർമ്മിക്കേണ്ടതാണ്. ഒരു സ്ട്രിംഗ് ഇതിനകം തന്നെ ഒരു വസ്തുവാണ്, കാരണം അത് ശൂന്യമായിരിക്കാം, അതേസമയം ശൂന്യം എന്നാൽ ഒരു വസ്തുവിന്റെ അസ്തിത്വം എന്നാണ് അർത്ഥമാക്കുന്നത്.

ഇക്കാരണത്താൽ, നിങ്ങൾ out of the cat കമാൻഡ് റീഡയറക്uട് ചെയ്യുമ്പോൾ, ഒരു ശൂന്യമായ വരി (ശൂന്യമായ സ്ട്രിംഗ്) പ്രിന്റ് ചെയ്യുന്നു.

ഫയലിലേക്ക് ഒരു നൾ ഔട്ട്പുട്ട് അയയ്uക്കുന്നതിന്, ഫ്ലാഗ് -n ഉപയോഗിക്കുക, അത് മുൻ കമാൻഡിൽ നിർമ്മിച്ച ശൂന്യമായ ലൈനിലേക്ക് നയിക്കുന്ന ട്രെയിലിംഗ് ന്യൂലൈൻ ഔട്ട്uപുട്ട് ചെയ്യരുതെന്ന് എക്കോയോട് പറയുന്നു.

# echo -n "" > access.log

5. ട്രങ്കേറ്റ് കമാൻഡ് ഉപയോഗിച്ച് ഫയൽ ശൂന്യമാക്കുക

ട്രങ്കേറ്റ് കമാൻഡ് ഒരു ഫയലിന്റെ വലുപ്പം ഒരു നിശ്ചിത വലുപ്പത്തിലേക്ക് ചുരുക്കാനോ നീട്ടാനോ സഹായിക്കുന്നു.

ഫയൽ വലുപ്പം വ്യക്തമാക്കുന്ന -s ഓപ്ഷൻ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇത് ഉപയോഗിക്കാൻ കഴിയും. ഒരു ഫയൽ ഉള്ളടക്കം ശൂന്യമാക്കാൻ, അടുത്ത കമാൻഡിലെന്നപോലെ 0 (പൂജ്യം) വലിപ്പം ഉപയോഗിക്കുക:

# truncate -s 0 access.log

ഇപ്പോൾ അത്രയേയുള്ളൂ, ലളിതമായ കമാൻഡ് ലൈൻ യൂട്ടിലിറ്റികളും ഷെൽ റീഡയറക്ഷൻ മെക്കാനിസവും ഉപയോഗിച്ച് ഫയൽ ഉള്ളടക്കം ക്ലിയർ ചെയ്യുന്നതിനോ ശൂന്യമാക്കുന്നതിനോ ഉള്ള ഒന്നിലധികം രീതികൾ ഈ ലേഖനത്തിൽ ഞങ്ങൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.

ഇത് ചെയ്യുന്നതിനുള്ള ലഭ്യമായ ഒരേയൊരു പ്രായോഗിക മാർഗമല്ല, അതിനാൽ ഈ ഗൈഡിൽ പരാമർശിച്ചിട്ടില്ലാത്ത മറ്റേതെങ്കിലും രീതികളെക്കുറിച്ചും ചുവടെയുള്ള ഫീഡ്uബാക്ക് വിഭാഗം വഴി നിങ്ങൾക്ക് ഞങ്ങളോട് പറയാനാകും.