উত্তর:
খুব সহজেই চূড়ান্ত সমাধান যখন ফাইলগুলির ক্ষেত্রে আসে যা সাধারণ মাধ্যমে মুছে ফেলা যায় না:
ls -il
প্রথম কলামে ফাইলগুলির ইনোড নম্বর প্রদর্শিত হবে।
find . -inum [inode-number] -exec rm -i {} \;
এটি যাচাইয়ের পরে নির্দিষ্ট ইনড-নম্বর সহ ফাইলটি মুছবে।
-delete
পরিবর্তে ব্যবহারের জন্য পরিবর্তন করেছি -exec
, তখন বুঝতে পেরেছি যে আপনি ব্যবহার করছেন rm -i
যা একটি ভাল ধারণা তাই আমি ফিরে এসেছি। দুঃখিত।
আপনার সেই ফাইলটি ~/~
(উদ্ধৃতি ব্যতীত) হিসাবে উল্লেখ করতে সক্ষম হওয়া উচিত কারণ শিলার ~
প্রারম্ভে টিলড-সম্প্রসারণ কেবল টিলড ( ) প্রয়োগ করে ।
rm ./~
একই কারণে আপনি বলেছিলেন
./~
আক্ষরিক অর্থ " ~
বর্তমান ডিরেক্টরিতে নামক একটি ফাইল বা ফোল্ডার " । পালানোর অক্ষর বা ইনোড উল্লেখের মতো কোনও হ্যাক নেই।
./~
। পাঁচ বছর পরে, আমার স্মৃতিটি কিছুটা অস্পষ্ট, তবে আমি মনে করি সে কারণেই আমি ~/~
আরও সাধারণের চেয়ে পরামর্শ দিয়েছি ./~
: প্রশ্নটি বিশেষত " ~
[ওপি'র] হোম ডিরেক্টরিতে নামক একটি ফাইল" বোঝায় ; "বর্তমান ডিরেক্টরিতে" নয়।
এটি উদ্ধৃত করুন ( rm '~'
) অথবা এটি থেকে পালাতে ( rm \~
)।
এটি সর্বদা হয় তাদের মধ্যে (যেমন উদাহরণস্বরূপ $
), বা --
ফাইলের নামটিকে যুক্তি হিসাবে ব্যাখ্যা করা থেকে বিরত রাখতে যুক্ত করুন: rm -- -i
ফাইলটি নামকরণ করে -i
; rm -- *
আপনি যখন বর্তমান ডিরেক্টরিতে সমস্ত ফাইল মুছতে চান তার জন্যও দরকারী : কোনও rm -f *
ফাইলের নামকরণের কারণে দুর্ঘটনা ঘটে না ।
--
কেবলমাত্র নিম্নলিখিত যুক্তিগুলি প্যারামিটার হিসাবে ব্যাখ্যা করা বন্ধ করে - এটি শেলটির সম্প্রসারণ (উদাহরণস্বরূপ *
) সঞ্চালন থেকে বাধা দেয় না , যা এখানে ঘটছে। (আমি জানি আপনি এটি অন্যান্য পরিস্থিতিতে বিকল্প হিসাবে পরামর্শ দিয়েছেন, তবে একটি সতর্কতা ভাল হবে।)