আমার একটি কমান্ড রয়েছে যা কোনও ফাইলকে একটি আর্গুমেন্ট হিসাবে গ্রহণ করে, ফাইলটি পরিবর্তন করে, তারপরে দ্বিতীয় আর্গুমেন্টে উল্লিখিত ফাইলের নামটিতে এটি লিখে। আমি এই প্রোগ্রাম কল করব modifyfile
।
আমি এটি "জায়গায়" কাজ করতে চেয়েছিলাম তাই আমি একটি শেল স্ক্রিপ্ট (বাশ) লিখেছিলাম যা এটি একটি অস্থায়ী ফাইলে পরিবর্তিত করে আবার এটিকে সরিয়ে দেয়:
TMP=`mktemp`
modifyfile "$original" "$TMP"
mv -v "$TMP" "$original"
এটিতে এই ফাইলটির অনুমতিগুলি ধ্বংস করার দুর্ভাগ্যজনক পার্শ্ব প্রতিক্রিয়া রয়েছে। ফাইলটি ডিফল্ট অনুমতি নিয়ে পুনরায় তৈরি হয়।
mv
গন্তব্যটির অনুমতি পরিবর্তন না করে কমান্ডটি ওভাররাইট করার জন্য কি কোনও উপায় আছে ? অথবা বিকল্পভাবে আসল থেকে ব্যবহারকারী, গোষ্ঠী এবং অনুমতিগুলি সংরক্ষণ এবং সেগুলি পুনরুদ্ধার করার কোনও উপায় আছে?