সে উদ্দেশ্যে একটি সরঞ্জাম তৈরি করা হয়েছে:
truncate -s 0 filename
এটি সামগ্রীগুলি সাফ করবে তবে এটি এখনও একই ফাইল হবে ( ইনোড একই থাকবে)।
এটি গুরুত্বপূর্ণ কারণ কিছু প্রোগ্রাম "আইনের মাধ্যমে বাই" ফাইলটিতে একটি হ্যান্ডেল ধরে থাকে। ধরুন আপনি ফাইলটি মুছে ফেলার এবং পুনরুদ্ধারের সরল পদ্ধতি ব্যবহার করে একটি ফাইল "খালি" করছেন। কিছু প্রোগ্রাম এখনও পুরানো ফাইলের (একটি পুরানো সামগ্রী সহ) একটি হ্যান্ডেল ধরে রাখতে পারে এমনকি যদি এটি স্বাভাবিক সময়ের মতো আর দৃশ্যমান না হয় ls।
এই উত্তর শেষে আরও বিশদ কিছু লিঙ্ক।
অন্য উপায়, সম্ভবত মনে রাখা সহজ:
echo -n > filename
এটি একই ইনোড রাখে।
নোট করুন truncateএবং উভয়ই পসিক্সecho -n দ্বারা সংজ্ঞায়িত করা হয়নি ।
পসিক্স সম্মতি ব্যবহারের জন্য cat /dev/null:
cat /dev/null > filename
তবুও অন্য উপায়, আরও অস্পষ্ট এবং সম্ভবত অজ্ঞাব্য শেল নয়:
> filename
যদি কাটা ফাইলটি লেখার জন্য রুট সুবিধাগুলির প্রয়োজন হয় তবে নিম্নলিখিত রেখাগুলি সম্ভবত প্রত্যাশার মতো কাজ করবে না:
sudo echo -n > filename
sudo cat /dev/null > filename
sudo > filename
এটি কারণ সুডো কার্যকর হওয়ার আগেই শেল দ্বারা পুনর্নির্দেশটি করা হয়। এর অর্থ এই যে ফাইলটিতে রাইটিং অ্যাক্সেসটি শেলটি চালানো ব্যবহারকারীর সুবিধাগুলি ব্যবহার করে সম্পন্ন হয়েছে, sudo দ্বারা প্রদত্ত সুবিধাগুলি নয়।
একটি workaround হ'ল sudo সুবিধাগুলি ব্যবহার করে মৃত্যুদন্ড কার্যকর করা শেলের পুনর্নির্দেশকে পিছনে দেওয়া:
sudo sh -c "echo -n > filename"
ব্যবহার truncateআপনি এই ধরনের একটি ওয়ার্কঅ্যারাউন্ড প্রয়োজন হবে না কারণ লেখার অ্যাক্সেস শেল দ্বারা সম্পন্ন না হয় কিন্তু দ্বারা truncateযা উবুন্টু বিশেষাধিকার ব্যবহার উবুন্টু দ্বারা সঞ্চালিত হয়।
sudo truncate -s 0 filename
ফাইলটি মুছে ফেলা হলেও এমনকি ফাইলটি ধরে রাখা প্রোগ্রামগুলি সম্পর্কে কিছু বিশ্রী বিবরণের জন্য আপনি নিম্নলিখিতটি পড়তে পারেন:
tail -n +1000 file.txt > file.txt1000 টি লাইন মুছে ফেলা উচিত এবং ফাইলে সর্বাধিক নতুন রেখাগুলি রাখা উচিত (কখনই কোনও কিছু ট্র্যাক করার জন্য আপনার সাম্প্রতিক রেকর্ডের প্রয়োজন হতে পারে কখনই জানেন না)।