`-Rf` নামক কোনও ফাইল সরানোর জন্য আমার কোন আদেশ ব্যবহার করতে হবে?


67

আমি এমন কিছু সময়ে ক্রেজি কিছু করেছি যা -rfআমার ফাইল সিস্টেমে ডেকে একটি ফাইল তৈরি করেছিল।
এখন কীভাবে এটি মুছবেন তা আমি বুঝতে পারি না ...

আমি চেষ্টা করেছিলাম:

rm "-rf"
rm \-rf

এগুলি কেবল তাত্ক্ষণিকভাবে প্রস্থান করুন !

এই ফাইলটি কীভাবে সরিয়ে ফেলতে হয় কেউ জানেন? সাধারণত দুর্ঘটনাক্রমে আমার পুরো ফোল্ডারটি পরিষ্কার না করে।


33
কিছু স্নায়ু সঠিক সিনট্যাক্সটি মনে না রেখে আপনার সিস্টেম থেকে কল করা rmকোনও ফাইলের চেষ্টা করছে -rf!
ক্রিস্টোফিড

3
কেন সেগুলি কাজ করে না তা বোঝানোর জন্য: উদ্ধৃতি এবং পলায়ন আপনার শেল (সাধারণত বাশ) দ্বারা পার্স করা হয় এবং তারপরে পার্সিংয়ের ফলাফলটি rm(এটিতে argcএবং argv) এ চলে যায়, সুতরাং, ফলাফলগুলি উভয়ই অ্যারে ["rm", "-rf"]পাস করা হয় rm, যা আপনার প্রত্যাশা করবে does
থানাটোস

3
আমি মনে করি এটি ইউনিক্স এবং লিনাক্স স্ট্যাকেক্সচেঞ্জ
উদ্ভট

12
একটি পুরাতন ঠাট্টা হ'ল *একটি ফোল্ডারে একটি ফাইল নাম করা। নামানুসারে একটি অন্তর্ভুক্ত করুন -rfএবং মজা দেখুন ;-)
আরবের্তেগ

@ আরবেরতিগ: mkdir './-rf '(শ - উরফের সাধারণ ডিফল্ট, এলএস - ক্লাসিফাই একটি /

উত্তর:


127
unlink -rf

অথবা

rm -- -rf

47
আইএমও শেখার জন্য এটি সবচেয়ে দরকারী সমাধান, কারণ '-' প্রক্রিয়াকরণ বন্ধ করার জন্য জিএনইউ সরঞ্জামগুলি জুড়ে মানক করা হয়েছে
নাথান ও'সুলিভান

1
আরও সুনির্দিষ্টভাবে বলতে গেলে, জিএনইউgetopt ব্যবহার করে যে কোনও কিছু রয়েছে --যার অর্থ বেশিরভাগ আধুনিক লিনাক্স সরঞ্জামগুলি হওয়া উচিত।
জেফ্রি ঝেং


34

বিকল্পভাবে আপনি সর্বদা ডিরেক্টরিটিকে এর মধ্যে সম্পাদনা করতে এবং ফাইলটিকে সেভাবে সরাতে পারেন।

vim .

এবং তারপরে কেবল ফাইলটিতে থাকা লাইনটি মুছুন (ডি, ডিডি ব্যবহার করে কাজ করবে না)।


5
সুন্দর কৌশল! [বেশ কয়েকটি অকেজো চরিত্র]
সার্জিও আকোস্টা

আমি মনে করি না যে এই বিকেলে আমি প্রথম এই উত্তরটি যখন দেখলাম তখন এটি নীচের উপনিবেশের উপযুক্ত ছিল, তবে আমার কাছে যাচাই করা vimমোড ছিল তা যাচাই করার সুযোগ আমার ছিল না । স্পষ্টতই, কোনও পাঠ্য সম্পাদককে প্রকৃত ডিরেক্টরিটি সম্পাদনা করার প্রস্তাব দেওয়া হয় না, বাস্তব বিশেষজ্ঞ হুপ জাম্পিং ছাড়াও সম্ভব নয়। নোট যে emacsখুব কার্যকর হবে, এবং একই কারণে।
RBerteig

1
বুদ্ধিমান ভিম ব্যবহারের জন্য অতিরিক্ত পয়েন্ট! :)
পিয়েরে-এন্টোইন লাফেট

জেনে ভাল
লাগলো

25

অদ্ভুত ফাইল নাম মুছে ফেলার জন্য একটি জেনেরিক কৌশলটি হ'ল।

 ls -li

ফাইলের ইনোড নম্বর এবং তারপরে ব্যবহার করতে।

find ./ -inum <number of file> -delete

সমস্ত বিশেষ ক্ষেত্রে মনে রাখার দরকার নেই।


4
findফাইলগুলি মুছে ফেলার ক্ষমতা আছে তা জানতেন না ।
জিনাক করুন

এটি অজানা নামগুলির সাথে ফাইলগুলি ধরার জন্য (ব্যাকস্পেস অক্ষরগুলির সাথে শুরু বা অন্তর্ভুক্ত অতিরিক্ত শ্বেত স্পেস সহ) সন্ধানের জন্যও দুর্দান্ত, যদি আপনার বাক্সে কোনও শালীন জিএনইউ সন্ধানের সুযোগ থাকে।
ওলফান

17

যদিও আমি "আরএম - ফাইল ফাইল" কৌশল সম্পর্কে জানি, সাধারণত যখন আমি কোনওরকম একটি শীর্ষস্থানীয়ের সাথে একটি ফাইল পাই - এর নামে যেটি আমি মুছে ফেলতে চাই আমি একটি জিইউআই ফাইল ম্যানেজার শুরু করি এবং সেখান থেকে এটি করি, সুযোগটি দূর করতে ভুল


1
তাঁর কোনও জিইআইআই নাও থাকতে পারে, তাই এটি কাজ নাও করতে পারে।
ওফার্স 5:25

12
যদি এটি নির্বোধ এবং ভুল হয় তবে এটি একটি ডাউনভোটের প্রাপ্য, তবে আমি এই উত্তরটি 'কার্যকর না হতে পারে' কেবল এই কারণে এই সিদ্ধান্তকে কমিয়ে আনাতে বিশ্বাস করি না। এই পরামর্শটি দিয়ে কোনও ক্ষতি হতে পারে না।
JT.WK

4
এক্স ব্যতীত যারা থাকেন তাদের জন্য সর্বদা মধ্যরাতের কমান্ডার (বা অন্যান্য অভিশাপ-ভিত্তিক ফাইল ম্যানেজার)
থাকবেন


4

কেবলমাত্র আপনি কিছু নন-জিএনইউ ইউনিক্সে রয়েছেন যেখানে আপনি নিজেকে পাথরযুগের পিছনে ঝাঁকুনির মতো অনুভব করছেন (কোনও --সিনট্যাক্স নেই, -inumসন্ধানের জন্য কোনও স্যুইচ নেই, কোনও লিঙ্কমুক্ত নির্দেশ নেই, আপনার সম্পাদক সম্পাদনা ডিরেক্টরিগুলি ইত্যাদি ইত্যাদি অস্বীকার করেছেন) আপনি এখনও নিজেকে সহায়তা করতে পারেন:

find . -name '-rf' -print | xargs rm -i

এর ফলে সমস্ত সম্ভাব্য প্রার্থীকে আরএম খাওয়ানো হবে যা পরিবর্তিত প্রতিটি ফাইলের জন্য এটি দেওয়া বা অস্বীকারের জন্য জিজ্ঞাসা করবে।

আপনার rmএমনকি যদি -iস্যুইচটি সমর্থন না করা হয় (পিএ-RISC 1.1 এ কারওর এইচপি-ইউএক্স 10.2?), আরও সতর্কতা অবলম্বন করুন:

find . -name '-rf' -print
# check that find's output is exactly and only what you need to delete
find . -name '-rf' -print | xargs rm

আপনার সিস্টেমে না থাকলে কী হবে find?
মিথ্যা রায়ান

এটা আসলে মন্দ হবে। হায়, আমি একটি ছাড়া ইউনিক্সের ইনস্টলেশনটি এখনও পূরণ করতে পারি। আপনি আমাকে একটি পয়েন্টার দিতে পারেন?
ওলফান

এটি কিছুটা চিন্তাভাবনা করা, আমার উত্তরটি আরও উপযুক্ত হত যদি সার্ভারফল্টে প্রশ্ন করা হত। সুপার ব্যবহারকারীরা যতটা প্রাচীন হিসাবে উল্লেখ করছেন তার কাছাকাছি যন্ত্রপাতি রাখার যথেষ্ট সম্ভাবনা নেই। আর যারা করবে তারা নিজেরাই সাহায্য শিখবে। ;-)
ওলফান

+1, @ ওলফান, আপনার প্রতিরক্ষা হিসাবে, যে কোনও জায়গায় এখন কেবল কোনও পায়খানাটিতে লিগ্যাসি ইউনিক্সের মুখোমুখি
হচ্ছেন তার

3

জেলিদেবের উত্তরকে সমর্থন করে আমি এর সাথে উন্নতি করব:

rm -i -- -rf

ইন্টারেক্টিভ মোডে থাকতে এবং নিশ্চিতকরণের জন্য জিজ্ঞাসা করতে, যাতে আপনি কী মুছবেন তা সম্পর্কে সত্যই আপনি নিশ্চিত হতে পারেন। (যদিও সমাধানটি ঠিক আছে it's এটি কেবল আপনার মানসিক শান্তির জন্য)

আসলে, এমনকি এটি ব্যবহার করুন:

\rm -i -- -rf

আপনি কোনও উপাত্ত ব্যবহার করছেন না তা নিশ্চিত হতে।


2

এটি ইতিমধ্যে প্রস্তাবিত হিসাবে আমি সর্বদা বাক্য গঠন ব্যবহার করেছি

rm -rf -- filename

যখন আমাকে ড্যাশ সহ একটি ফাইল উপসর্গ হিসাবে সরিয়ে ফেলতে হয়েছিল কারণ - কমান্ডকে বলে যে এটি অন্য কোনও প্যারামিটার অনুসন্ধান করে না তবে কেবল ফাইলের নাম দেয়।

এটি মাথায় রেখে, দুর্ঘটনাকৃত ফাইল মুছে ফেলার মাধ্যমে আমার গুরুত্বপূর্ণ ফোল্ডারটি সুরক্ষিত করার জন্য আমাকে কেবল -i নামে একটি খালি ফাইল তৈরি করতে ব্যবহার করা হয়েছিল যা * অনুসন্ধানের সমাধানের সময় সাধারণত ফাইল তালিকার শীর্ষে রাখা হয়। সুতরাং আদেশ

rm -rf *

আমার সুরক্ষিত ফোল্ডারে যখন উত্সাহিত হয় তখন বিস্ফোরিত হয়, কমান্ডে কার্যকর কার্যকর হয়:

rm -rf -i filename1 filename2 .... (all the other files in the folder)

এবং শেলটি সাথে সাথে সমস্ত কিছু মুছে ফেলার পরিবর্তে একটি নিশ্চিতকরণ জিজ্ঞাসা করা বন্ধ করে দেয় (-i বিকল্পের প্রয়োজন হিসাবে) requires


-iফাইলের নাম হ্যাকের জন্য +1 - "আমি" সন্দেহজনক ছিল, তবে এটি পরীক্ষা করে!
rymo

2

গতবার যখন আমার এই সমস্যা হয়েছিল তখন আমি এটি দিয়ে সমাধান করেছি:

পাইথন

আমদানি ওএস

os.remove ( "- RF")


1

মার্টিন ক্লেটন ঠিক আছে।

এটি খুব সাধারণ এবং যৌক্তিক। বিকল্পগুলি বিদ্যমান থাকলে এটি সর্বদা -XXXবা --CCCCতাই যদি আপনি একটি ./বা পুরো পথটি রাখেন তবে এটি -rfবিকল্প হিসাবে বিবেচনা করা যাবে না এবং এটি একটি সাধারণ স্ট্রিং হিসাবে বিবেচিত হবে।

এটি "সমস্ত" অদ্ভুত ফাইল নামের সাথে কাজ করে।

#pwd
/ Tmp / 'পরীক্ষা
# টাচ। /-আরএফ
#ls 
-আরএফ
#rm ./-rf 
#ls
#

1

rm - -rf সর্বাধিক gnu সরঞ্জাম গ্রহণ করে - বিকল্পগুলির শেষের চিহ্নিতকারী হিসাবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.