আমি কেন 'অপসারণ করতে পারি না?' ডিরেক্টরি?


40

আমি '' অপসারণ করার চেষ্টা করেছি। ডিরেক্টরি। আমি ভেবেছিলাম যে আমি কোনও প্যারেন্ট ডিরেক্টরিতে না গিয়ে কেবল আমার ওয়ার্কিং ডিরেক্টরিটি মুছতে পারি।

আমার প্রশ্নের মূল বিষয় হল লিনাক্স সিস্টেম ফাইলগুলি মুছতে কীভাবে কাজ করে সে সম্পর্কে কিছুটা অন্তর্দৃষ্টি অনুসন্ধান করা।


1
বাস্তবে পিতা মাতার কাছে না গিয়ে বর্তমান
দিরটিকে

7
এই প্রশ্নটি সেটির সদৃশ হয় না। এইটি জিজ্ঞাসা করে যে শক্ত লিঙ্কটি সংশ্লেষিত হওয়ার চেয়ে শারীরিক সত্তা হিসাবে কেন বিদ্যমান। এই প্রশ্নটি কেন rm .এবং কেন rmdir .কাজ করে না কেবল তা জিজ্ঞাসা করে , তবে কেন সেগুলি কাজ না করা হিসাবে নির্দিষ্ট করা হয়েছে, যা একটি শক্ত লিঙ্কের শারীরিক অস্তিত্বের থেকে পৃথক।
জেডিবিপি

9
ছবিটি আপনি একটি শাখা ছিন্ন করতে একটি গাছে উঠে গেছেন। আপনি যখন দেখা শুরু করেন তখন কাটার কোন দিকে বসে থাকেন? (এটি সংক্ষেপে লিনাক্স ফাইল সিস্টেম।)
মাইকেল 25

7
rm -rf .*কেবল ...../..
এটিই

উত্তর:


89

বর্তমান ডিরেক্টরি মুছে ফেলা ফাইল সিস্টেমের সততা বা এর যৌক্তিক সংস্থাকে প্রভাবিত করে না। ম্যানুয়াল পৃষ্ঠাতে .বলা হয়েছে যে পসিএক্স মান অনুসরণ করতে অপসারণ রোধ করা হয় rmdir(2):

পথের যুক্তি যদি এমন কোনও পথকে বোঝায় যার চূড়ান্ত উপাদানটি হয় বিন্দু বা বিন্দু-বিন্দু, rmdir () ব্যর্থ হবে shall

rmম্যানুয়াল পৃষ্ঠায় একটি যুক্তি পাওয়া যাবে :

অজান্তে এমন কিছু করার পরিণতি এড়াতে rm ইউটিলিটি নামগুলি এবং বিন্দু বিন্দু মুছে ফেলা নিষিদ্ধ:

আরএম-আর। *

অন্যদিকে, স্পষ্টভাবে বর্তমান ডিরেক্টরিটি মুছে ফেলা (অর্থাত্ এর সম্পূর্ণ বা আপেক্ষিক পথটি উল্লেখ করে) ইউনিক্সের আওতাধীন একটি অনুমোদিত ক্রিয়াকলাপ, অন্তত এসভিআর 3 থেকে এটি ইউনিক্স সংস্করণ 7 দিয়ে এসভিআর 2 অবধি নিষিদ্ধ ছিল। আপনি যখন সক্রিয়ভাবে পড়া বা লিখিত হয়ে যাওয়া এমন কোনও ফাইল সরিয়ে ফেলেন তখন যা ঘটেছিল তার সাথে এটি খুব মিল। মোছা ফাইলটিতে অ্যাক্সেস করা প্রক্রিয়াগুলি তাদের পড়া এবং লেখার ক্রিয়াকলাপটি চালিয়ে যায় ঠিক তেমন কিছুই ঘটেনি। আপনি একটি প্রক্রিয়া বর্তমান ডিরেক্টরি মুছে ফেলার পরে, এই ডিরেক্টরিটি এর পথ ছাড়াও আর অ্যাক্সেসযোগ্য নয় তবে প্রক্রিয়াটি মারা না যাওয়া বা নিজস্ব ডিরেক্টরি পরিবর্তন না হওয়া পর্যন্ত এর ইনোড ফাইল সিস্টেমে উপস্থিত থাকে।

নোট করুন যে প্রক্রিয়াটি তার বর্তমান ডিরেক্টরিটির সাথে সম্পর্কিত কোনও পাথ ব্যবহার করতে সক্ষম হবে না তার সিডব্লিউড (উদাহরণস্বরূপ cd ..) পরিবর্তন করার জন্য কারণ ..এর বর্তমান ডিরেক্টরিতে আর কোনও প্রবেশিকা নেই ।

কেউ টাইপ যখন rmdir .তারা সম্ভবত আশা বর্তমান ডিরেক্টরী এন্ট্রি অপসারণ করা হবে কিন্তু যখন একটি ডিরেক্টরির মুছে ফেলা হবে (তার পাথ ব্যবহার করে), তিন ডিরেক্টরির এন্ট্রি আসলে সরিয়ে ফেলা হয়, ., .., এবং ডিরেক্টরির নিজেই।

কেবল .এবং এই ডিরেক্টরিতে ডিরেক্টরি ডিরেক্টরি এন্ট্রি অপসারণযোগ্য একটি অনুপযুক্ত ডিরেক্টরি তৈরি করতে পারে কিন্তু ইতিমধ্যে উল্লিখিত হিসাবে, এটি মান দ্বারা নিষিদ্ধ।

@ এমমানুয়েল যথাযথভাবে উল্লেখ করেছেন, অপসারণের .অনুমতি না দেওয়ার দ্বিতীয় কারণ রয়েছে । কমপক্ষে একটি পসিক্স কমপ্লায়েন্ট ওএস (এইচএফএস + সহ ম্যাক ওএস এক্স) রয়েছে যা শক্তিশালী বিধিনিষেধের সাথে বিদ্যমান ডিরেক্টরিগুলিতে হার্ডলিঙ্ক তৈরি করতে সহায়তা করে। এই জাতীয় ক্ষেত্রে, কোন হার্ডলিঙ্কটি অপসারণের প্রত্যাশা, তা ডিরেক্টরিটির ভিতরে থেকে কোনও সুস্পষ্ট উপায় নেই way


9
pubs.opengroup.org/onlinepubs/9699919799/function/rmdir.html " পথের নাম / ডট মুছে ফেলার অর্থটি অস্পষ্ট, কারণ মুখ্য ডিরেক্টরিতে ফাইল (ডিরেক্টরি) মুছে ফেলার নাম পরিষ্কার নয়, বিশেষত উপস্থিতিতে ডিরেক্টরিতে একাধিক লিঙ্ক রয়েছে "
এমানুয়েল

@ ইমানুয়েল এমন একটি ডিরেক্টরি মুছে ফেলা উচিত যাতে দুটিরও বেশি সংযোগ থাকে (যেমন শূন্য নয়) ডিজাইন (খালি ডিরেক্টরি নয়) দ্বারা ইতিমধ্যে নিষিদ্ধ। একটির লিঙ্ক গণনা সহ একটি ডিরেক্টরি মানক দ্বারা নিষিদ্ধ করা হয়েছে (কমপক্ষে এমন ফাইল সিস্টেমের সাথে যেখানে লিঙ্কের একটি অর্থ রয়েছে)।
jlliagre

3
@jlliagre: এটি একটি ডিরেক্টরির একটি প্রশ্ন না ধারণকারী একাধিক লিঙ্ক, কিন্তু একটি ডিরেক্টরি থাকার একাধিক লিঙ্ক। কিছু ফাইল সিস্টেম এবং / অথবা অপারেটিং সিস্টেমগুলি এটিকে অস্বীকার করে তবে সমস্তটি নয়।
জার্গ ডব্লু মিট্টাগ

@ জার্গডব্লিউমিত্যাগ একাধিক ডিরেক্টরি সম্বলিত একটি ডিরেক্টরিতে নকশার দ্বারা একাধিক লিঙ্ক রয়েছে , কারণ এর সমস্ত উপ-ডিরেক্টরি এতে ..লিঙ্ক করে। এটি link count > 2অপ্রতিরোধ্য সংখ্যাগরিষ্ঠ ওএসএস এবং ফাইল সিস্টেমের ক্ষেত্রে অনন্য ক্ষেত্রে তাই "কিছু ফাইল সিস্টেম এবং / অথবা অপারেটিং সিস্টেমগুলি" একটি সংক্ষিপ্তসার হিসাবে বিবেচিত হয়। একমাত্র অ-historicalতিহাসিক জ্ঞাত ব্যতিক্রম হ'ল ম্যাক ওএস এক্স সহ এইচএফএস + যা কিনা কে এবং কী করা যায় সে সম্পর্কে সীমাবদ্ধতা যুক্ত করে। মঞ্জুরি দেওয়া পসিক্স মন্তব্যটি এই বিজোড়তার দিকে পরিচালিত। দেখুন unix.stackexchange.com/questions/22394/...
jlliagre

আরে, আমি এর আগেও করেছি rm -r .*এবং এটি প্যারেন্ট ডিরেক্টরটির অধীনে সমস্ত কিছু পুনরাবৃত্তভাবে উড়িয়ে দিয়েছে ... এটি এক দশক বা দুই দশকেরও বেশি সময় আগে ছিল তবে এটি জেনে রাখা ভাল rm
আনতক

9

এটি বর্তমানে নিরপেক্ষতার জন্য যেমন হয়েছে কারণ আপনি বর্তমানে সেই ডিরেক্টরিতে রয়েছেন এবং এটি .কেবল একটি স্ব-রেফারেন্স।

আপনাকে হয় এর পিতামাতায় যেতে হবে বা rmdirএর পথ দিয়ে কল করতে হবে যা দিয়ে এটি করা যেতে পারে:

rmdir `pwd`

আপনার যদি প্রায়শই এটির প্রয়োজন হয় তবে আপনি এটির মতো একটি উপনাম সেট করতে পারেন:

alias rmc='rmdir `pwd`'

.. যা rmcবর্তমান ডিরেক্টরি সরানোর জন্য একা বলা যেতে পারে ।


13
তবে কেন / কীভাবে অনুমানক rmdir .কমান্ড ফাইল সিস্টেমের অখণ্ডতাটিকে এমনভাবে আপস করে rmdir $(pwd)বা rmdir "$PWD"না?
জি-ম্যান

4
এটি এফএসের অখণ্ডতার বিষয় নয় তবে যৌক্তিক সংস্থার বিষয়। আপনি যখন আপনার বর্তমান ডিরেক্টরিটি চয়ন করেছেন, আপনি শেলটিকে আপনার আগত ক্রিয়াকলাপগুলির জন্য এই ডিরেক্টরিটি ব্যবহার করতে বলুন, তবে আপনি নিজের থেকে কিছু সরাতে পারবেন না।
জুলি পেলেটিয়ার

7
আমি মনে করি এটি অনুমানজনক মনে হচ্ছে।
ইমানুয়েল

4
@ ফ্র্যাঙ্কলিনপিট আমি আপনার মন্তব্যটি বিশেষভাবে কার্যকর পাইনি: ১. ওপি কোথায় ব্যবহার করেছে rm *এবং শেল ইতিহাস বলতে কী বোঝ ? ২. উত্তরটি কেন অংশটিকে সম্বোধন করেছে , ৩. বিস্তৃত করার জন্য যত্নশীল?
জেবেেন্টলি

4
@ জি-ম্যান যদি আপনি না rmdir $(pwd), pwdবর্তমান ডিরেক্টরির জন্য আউট একটি লজিক্যাল নাম পরিসংখ্যান উদাহরণস্বরূপ, /foo/bar/baz, এবং তারপর rmdir, যে পথ দেখে সরিয়ে ফেলা bazথেকে এন্ট্রি /foo/barপ্রদান করা শর্তগুলি মেলে ডিরেক্টরি। এইবার বুঝতে পারছি. rmdir .অন্যদিকে, কমান্ডটি .বর্তমান ডিরেক্টরি থেকে এন্ট্রি সরিয়ে ফেলার একটি নির্দেশ , যা উভয়ই অনুমতিপ্রাপ্ত নয় (এটি প্রতিটি .সীমাতে নিজের ইঙ্গিত করে এমন প্রতিবন্ধকতা লঙ্ঘন করবে ) বা দরকারী নয় (এটি লিঙ্কটি সরাবে না আপনি সরানো চেয়েছিলেন )।
hobbs
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.