আমি জানি এটি একটি উপ-ডিরেক্টরিতে এবং এর নীচে সমস্ত কিছু মুছে ফেলবে:
rm -rf <subdir-name>
তবে আপনি কীভাবে বর্তমান ডিরেক্টরিতে সমস্ত কিছু পাশাপাশি তার নীচের প্রতিটি উপ-ডিরেক্টরি এবং সেই সমস্ত উপ-ডিরেক্টরিগুলির সামগ্রীগুলি কীভাবে মুছবেন?
আমি জানি এটি একটি উপ-ডিরেক্টরিতে এবং এর নীচে সমস্ত কিছু মুছে ফেলবে:
rm -rf <subdir-name>
তবে আপনি কীভাবে বর্তমান ডিরেক্টরিতে সমস্ত কিছু পাশাপাশি তার নীচের প্রতিটি উপ-ডিরেক্টরি এবং সেই সমস্ত উপ-ডিরেক্টরিগুলির সামগ্রীগুলি কীভাবে মুছবেন?
উত্তর:
নিরাপদ কম্পিউটিং অনুশীলন করুন। কেবল শ্রেণিবিন্যাসের এক স্তর উপরে যান এবং একটি ওয়াইল্ডকার্ড এক্সপ্রেশন ব্যবহার করবেন না:
cd ..; rm -rf -- <dir-to-remove>
দুটি ড্যাশ --
বলে rm
যে <dir-to-remove>
এটি কোনও কমান্ড-লাইন বিকল্প নয়, এমনকি যখন এটি কোনও ড্যাশ দিয়ে শুরু হয়।
rm ./
দুর্ঘটনাক্রমে টাইপ করুন rm . /
যা দুর্যোগ হতে পারে।
বর্তমানের নীচে থাকা সমস্ত ফাইল / ডিরেক্টরি মুছবে।
find -mindepth 1 -delete
আপনি যদি অন্য ডিরেক্টরিতে নিজের নামটি রেখেছেন তেমন করতে চান তবে আপনি কেবল এটির নাম রাখতে পারেন
find <name-of-directory> -mindepth 1 -delete
আপনি যদি এর উপ-ডিরেক্টরি এবং ফাইলগুলি নয়, কেবল ডিরেক্টরিটিও বাদ দিতে চান তবে বাদ দিন -mindepth 1
। -delete
সরানো হবে এমন জিনিসগুলির একটি তালিকা না পেয়ে এটি করুন ।
-mindepth 1
যদি একটি ডিরেক্টরি ( find <name-of-directory> -mindepth 1 -delete
) নির্দিষ্ট করে থাকেন তবে আপনার প্রয়োজন । অন্যথায় জোহানেস ঠিক আছে এটি বর্তমান কার্যকারী ডিরেক্টরিটি (মুছে ফেলা হবে না) মুছবে না find -delete
।
find -mindepth 1 -delete
তবে আমি পেয়েছিলাম তবে আমি illegal option -- m
দুর্দান্ত কাজটি অপসারণ করার পরে এটি দুর্দান্ত কাজ করেছে find . -delete
আমি সবসময় কি টাইপ হয়
rm -rf *
এবং তারপরে ESC- * টিপুন এবং ব্যাশটি বর্তমান চলমান ডিরেক্টরি ডিরেক্টরিতে ফাইল এবং ডিরেক্টরিগুলির একটি সুস্পষ্ট তালিকায় * প্রসারিত করবে।
সুবিধাগুলি হ'ল:
প্রকৃতপক্ষে, আমি এটি এতটাই পছন্দ করেছি যে .Bashrc- এ এই লাইনটি দিয়ে আমি এটি টিএবির জন্য ডিফল্ট আচরণ করে তুলেছি:
bind TAB:insert-completions
--
এই উত্তরে অনুপস্থিত ? এই পদ্ধতির সামগ্রিকভাবে আমি অবশ্যই বলতে পারি দুর্দান্ত।
ব্যবহার
rm -rf *
আপডেট: .
বর্তমান ডিরেক্টরিটির জন্য স্ট্যান্ড, তবে আমরা এটি ব্যবহার করতে পারি না। কমান্ডটিতে .
এবং এর জন্য সুস্পষ্ট চেক রয়েছে বলে মনে হচ্ছে ..
। পরিবর্তে ওয়াইল্ডকার্ডকে গ্লোববিং ব্যবহার করুন। তবে এটি ঝুঁকিপূর্ণ হতে পারে।
একটি নিরাপদ সংস্করণ আইএমও হ'ল:
rm -ri *
(এটি প্রতিটি ফাইল / ডিরেক্টরি মোছার আগে আপনাকে নিশ্চয়তার জন্য অনুরোধ করে))
এটি সঠিক যে rm –rf .
কোনও বর্তমান উপ-ডিরেক্টরি এবং তাদের সামগ্রী সহ সরাসরি বর্তমানের সমস্ত কিছু সরিয়ে ফেলবে। একক বিন্দু ( .
) বর্তমান ডিরেক্টরির মানে। সাবধান করতে হবে না rm -rf ..
যেহেতু ডবল ডট ( ..
) পূর্ববর্তী ডিরেক্টরি মানে।
এটি বলা হচ্ছে, আপনি যদি আমার মতো হন এবং একই সাথে একাধিক টার্মিনাল উইন্ডোগুলি খোলা থাকে তবে আপনি আরও নিরাপদ থাকতেন এবং এর rm -ir .
কারণ বুঝতে কমান্ড আর্গুমেন্টগুলি দেখুন use
প্রথমে, যদি আপনি rm
কমান্ড ম্যান পৃষ্ঠাটি দেখে থাকেন ( man rm
বেশিরভাগ ইউনিক্সের নীচে) আপনি লক্ষ্য করেন যে –r
"ডিরেক্টরিগুলির বিষয়গুলি পুনরাবৃত্তভাবে মুছে ফেলুন" means সুতরাং, rm -r .
একা একা করার ফলে বর্তমান ডিরেক্টরিতে সমস্ত কিছু মুছে ফেলা হবে এবং সমস্ত কিছু এটিকে প্রশমিত করবে।
ইন rm –rf .
যোগ -f মানে হলো "অবাস্তব ফাইল উপেক্ষা করা, কখনও প্রম্পট"। এই কমান্ডটি বর্তমান ডিরেক্টরিতে থাকা সমস্ত ফাইল এবং ডিরেক্টরি মুছে ফেলে এবং আপনাকে সত্যই এটি করতে চাইছে তা নিশ্চিত করতে কখনই আপনাকে অনুরোধ করে না। -f
বিশেষত বিপজ্জনক যদি আপনি কোনও বিশেষাধিকার ব্যবহারকারীর অধীনে কমান্ডটি পরিচালনা করেন যেহেতু আপনি যে যা চান তা নিশ্চিত করার সুযোগ না পেয়ে আপনি যে কোনও ডিরেক্টরিতে থাকা সামগ্রী মুছতে পারেন।
Otherhand তারিখে, এ যে প্রতিস্থাপন মানে হলো "কোন অপসারণের আগে প্রম্পট"। এর অর্থ আরএম খুশির সাথে আপনার সমস্ত ফাইল মুছে ফেলার আগে আপনি "ওপস! এটি আমি চাই না" বলার সুযোগ পাবেন।rm -ri .
-i
-f
আমার প্রারম্ভিক সিসাদমিনের দিনগুলিতে আমি rm -rf /
সম্পূর্ণ সুবিধাগুলি (মূল) দিয়ে লগ ইন করার সময় একটি সিস্টেমে একটি কাজ করেছি। ব্যাকআপগুলি থেকে সিস্টেমটি পুনরুদ্ধার করার ফলে দুটি দিন অতিবাহিত হয়েছিল। এজন্য আমি এখনই চাকরী করি rm -ri
।
আপনি সঠিক ডিরেক্টরিতে আছেন তা নিশ্চিত করুন
আরএম-আরএফ *
আমি বিশ্বাস করি এই উত্তরটি আরও ভাল:
/unix/12593/how-to-remove-all-the-files-in-a-directory
যদি আপনার শীর্ষ-স্তরের ডিরেক্টরি বলা হয়
images
, তবে চালানrm -r images/*
। এটি চিত্রের মধ্যে থাকা প্রতিটি ফাইল বা ডিরেক্টরিতে*
চালাতে শেল গ্লোব অপারেটরটি ব্যবহারrm -r
করে।
মূলত আপনি এক স্তর উপরে যান এবং তারপরে X ডিরেক্টরিতে থাকা সমস্ত কিছু মুছুন। এইভাবে আপনি এখনও নির্দিষ্ট করে দিচ্ছেন যে ফোল্ডারের মূল বিষয়বস্তু মুছে ফেলা উচিত, যা মূল ফোল্ডারটি সংরক্ষণের সময় 'এখানে সবকিছু মুছুন' বলার চেয়ে নিরাপদ, (যা আপনাকে কখনও কখনও অনুমতি দিতে পারে না বা কেবল চান না বলে আপনি চান ফোল্ডারের বিদ্যমান অনুমতিগুলি পরিবর্তন করতে)