जब मैं खाली निर्देशिका निकालने का प्रयास करता हूं तो मुझे "निर्देशिका खाली नहीं" क्यों मिलती है?


37

मेरे पास यह खाली निर्देशिका है, लेकिन मुझे निम्न त्रुटि संदेश प्राप्त होता रहता है:

Cannot remove test: Directory not empty

मुझे पता है कि यह सवाल बहुत बार पूछा गया है लेकिन उनमें से किसी ने भी मदद नहीं की।

मैंने ls -laयह सुनिश्चित करने की कोशिश की कि कोई छिपी हुई फ़ाइलें नहीं थीं, और ऐसा प्रतीत नहीं होता है: यहाँ छवि विवरण दर्ज करें

मैंने कोशिश की sudo rmdir testहै और साथ ही के रूप में sudo rm -rf test, और मैं बस नहीं जानता कि क्या गलत है।

मैंने पढ़ा है कि यह फ़ाइल सिस्टम के साथ एक समस्या हो सकती है, लेकिन मुझे नहीं पता कि मैं इसे कैसे ठीक करूंगा।


कोशिशsudo fsck /
ike

2
क्या यह एक सामान्य निर्देशिका या एक माउंट बिंदु है। यदि यह एक माउंट बिंदु है, तो इसे हटाने से पहले अनमाउंट किया जाना चाहिए। यदि यह एक सामान्य निर्देशिका है, तो कभी-कभी कुछ खुले हैंडल इस समस्या का कारण हो सकते हैं। अपनी मशीन को एक बार रिबूट करें और इसे हटाने का प्रयास करें।
वीम्बुतेच

@rbrick क्या testआपका लॉगिन उपयोगकर्ता का नाम है? क्या के उत्पादन में है echo $USER? और क्या echo $HOME?
α atsнιη

1
मैं भ्रमित हूं, उपयोगकर्ता के पास निर्देशिका पर अनुमतियों को निष्पादित क्यों नहीं करता है, लेकिन समूह करता है?
जूलियन स्टर्लिंग

जवाबों:


36

मुझे बाहरी हार्ड डिस्क पर एक ही समस्या थी, मैंने कमांड लाइन का उपयोग करके बहुत सारे तरीके आज़माए, लेकिन मैं हर बार विफल रहा। मेरे लिए यही काम आया:

  1. फ़ोल्डर पर राइट क्लिक करें
  2. रद्दी में डालें
  3. कचरा खाली करें

हां, यह मूर्खतापूर्ण है, लेकिन यह मेरे लिए काम करता है (मुझे वास्तव में नहीं पता कि यह कैसे और क्यों, लेकिन शापित फ़ोल्डर अब मौजूद नहीं है)


मुझे एक ही मुद्दा मिला और आपका जवाब काम करता है। बिल्कुल निश्चित नहीं है कि मूर्खतापूर्ण बात क्या हुई, और क्यों "-rf" एक गैर-खाली फ़ोल्डर को हटाने में विफल रहा।
आर्टम

3
यहाँ क्या हुआ? यह काम क्यों किया?
साहिल अरोड़ा

क्या हुआ? ईमानदारी से, मुझे नहीं पता। हो सकता है, किसी कारण से फ़ोल्डर की फ़ाइल दूषित हो गई थी: "जैसे-रिक्त" या "काउंटर-कितने-फ़ाइल-अंदर" जैसे फ़ाइल काउंटर को एक गलत मान पर सेट किया गया है। कभी-कभी, इस तरह की त्रुटियां हार्ड डिस्क पर नुकसान के कारण हो सकती हैं। यह काम क्यों किया? मुझे नहीं पता कि कमांड कैसे लागू किए जाते हैं (सी के बारे में सोचें), लेकिन मुझे लगता है कि वे अभिनय से पहले उन झंडे और काउंटरों की जांच करते हैं (मेरा मतलब है, अगर फ़ाइल काउंटर> 0 तो "त्रुटि: निर्देशिका खाली नहीं है" और निरस्त करें), खाली करते समय कचरा सीधे किसी भी प्रकार की जाँच के बिना फ़ोल्डर और उसकी सभी फ़ाइल और सबफ़ोल्डर को हटा दें।
मार्को ओटिना

हो सकता है, कमांड लाइन के माध्यम से एक फ़ोल्डर को हटाने के लिए कुछ शर्तों की आवश्यकता होती है, जैसे फ़ोल्डर की शून्यता, (क्योंकि फ़ाइल सिस्टम से फ़ोल्डर के नोड को हटाने से केवल एक ही लिंकनोड निकलता है और फ़ोल्डर को खाली करने की आवश्यकता होती है, इसलिए कोई अन्य फ़ाइल-नोड नहीं होगा " "फ़ाइल सिस्टम के माध्यम से उन्हें मध्यवर्ती लिंक खोने के कारण, फ़ोल्डर द्वारा दर्शाया गया है) .. और राइट क्लिक के माध्यम से एक फ़ोल्डर को हटाने -> कचरा हटाने या खाली करने से फ़ोल्डर को हटा दिया जाता है और सभी फ़ाइल और सबफ़ोल्डर पुनरावर्ती होते हैं, झंडे की देखभाल नहीं करते हैं, काउंटर और सामान जैसे (इसलिए, कोई चेक नहीं किया जाता है)
मार्को ओटिना

1
मेरे मामले में, प्रश्न में उपनिर्देशिका एक फ़ोल्डर में हुई जो मेरे मैक से एक लिनक्स वीएम पर साझा की गई थी, और मैं लिनक्स वीएम पक्ष से फ़ोल्डर को हटाने की कोशिश कर रहा था। ऐसा लगता है कि मैक पक्ष कुछ फ़ोल्डर्स पर पकड़ था। कर rm -rfमैक की ओर से काम किया।
माइंडजुइस

5

मैं 10 + ubuntu दोहरी प्रणाली स्थापित जीत है। और दोनों ही सिस्टम विंडोज़ परिटिशन को साझा करते हैं।

हाल ही में, मैं भी ubuntu के तहत उन विभाजनों में खाली फ़ोल्डरों को हटाने में असमर्थ रहा। मैं इसे लिनक्स के तहत हल करने के लिए समाधान नहीं ढूँढ सकता।

हालाँकि, मैं विंडोज़ पर स्विच करने और चलाने के बाद

chkdsk

cmdलक्ष्य डिस्क के लिए के माध्यम से । कुछ त्रुटियों की जाँच की गई। और फिर मैं दौड़ता हूं

chkdsk /F

डिस्क त्रुटि को ठीक करने के लिए।

इसके समाप्त होने के बाद, मैं अब उन फ़ोल्डरों को हटाने में सक्षम हूं।


2
यह तरीका मेरे लिए काम करता है। मुझे लगता है कि यह भी ध्यान रखना महत्वपूर्ण है कि साझा विभाजन NTFS स्वरूपित है और यह संभवतः दूषित है।
कर्मठ

4

आप इसे टाइप करके हटा सकते हैं sudo rm -rf {dir_name}। निर्देशिका को केवल-पढ़ने की अनुमति के लिए सेट किया गया हो सकता है। मुझे उम्मीद है कि दिए गए कमांड फ़ोल्डर को हटा सकते हैं।


मैं Directory not emptyवैसे भी मिलता हूं । यह अजीब लगता है, इसलिए मैंने साबित करने के लिए अपनी स्क्रीन रिकॉर्ड की।
naXa

उत्तर में वह कमांड काम करता है भले ही निर्देशिका में सामग्री हो और उपनिर्देशिका के साथ भी।
वूल्वरिन

नहीं लगता है मुझे सिर्फ घड़ी: डी drive.google.com/open?id=1UEYVa4UT6df7xucrq-lO82xjk3afHHzA
NAXA

यह अजीब व्यवहार NTFS विभाजन में त्रुटियों के कारण हुआ था। के साथ हल किया chkdsk /F
naXa

4

मेरे पास वही मुद्दा था जो निर्देशिका को हटाने में सक्षम नहीं था क्योंकि यह खाली नहीं है।

संचालन के इस क्रम ने मेरे लिए काम किया।

  1. पहले कमांड लाइन से

    sudo rmdir  --ignore-fail-on-non-empty folder-name-to-be-deleted
    

उपरोक्त कमांड ubuntu को अनदेखा करने में मदद करता है निर्देशिका खाली नहीं है।

  1. फिर बस फ़ोल्डर में जाएं और Shift + Del। यही सब कुछ है।

3

जीयूआई समाधान

  1. फ़ोल्डर को ट्रैश में ले जाएं या काटें और पेस्ट करें
  2. कचरा खाली करो

यह किया जाता है।

कमांड-लाइन समाधान

sudo mv folder_error/ .local/share/Trash

आप ट्रैश-क्ली से साफ कर सकते हैं: कचरा-खाली या

sudo rm -fr ~/.local/share/Trash/*

1
मुझे लगता है कि यहां कमांड लाइन समाधान वास्तव में एक सामान्य समाधान है। खाली फ़ोल्डर को किसी अन्य स्थान पर ले जाएं, और इसे स्थानांतरित करने के बाद इसे हटा दें। जैसे, कुछ ऐसा mkdir a ; mv test a/ ; rm -rf a/test ; rm -rf a। मेरे लिए काम करने जैसा एक दृष्टिकोण (हालांकि मुझे नहीं पता कि यह क्यों होगा), और मुझे रूट एक्सेस की आवश्यकता नहीं थी।
जेक फिशर

2

यदि निर्देशिका CIFS (उर्फ सांबा) के साथ घुड़सवार एक फाइलसिस्टम का हिस्सा है, और इसमें एक फ़ाइल है जो एक टूटी हुई प्रतीकात्मक कड़ी है, तो lsउस फ़ाइल का उल्लेख करने में विफल रहता है। (मैं 14.04.2 LTS और 12.04.5 LTT पर चलने वाले सर्वर पर CIFS क्लाइंट पर इस बग का अवलोकन करता हूं ।)

इसलिए निर्देशिका खाली नहीं है , लेकिन (CIFS से अधिक) आपके पास इसे देखने का कोई तरीका नहीं है। फ़ाइल केवल देखी जा सकती है, और इस प्रकार केवल उस फाइलसिस्टम को होस्ट करने वाले फाइलरवर पर चल रहे कमांड द्वारा ही डिलीट किया जा सकता है।


2

यदि आप btrfs का उपयोग कर रहे हैं, तो संभवतः यह एक गैर-शून्य i_size के साथ एक खाली निर्देशिका है। आप देख सकते हैं कि क्या यह मामला है:

stat -c %s test

Btrfs में एक खाली फ़ोल्डर का i_size शून्य होना चाहिए। मेरे मामले में, मुझे 6160 मिले ~/.config/chromium/Default

सुझाए गए समाधान फाइलसिस्टम को अनमाउंट करना, btrfs checkसमस्या की पुष्टि करने के लिए चलाना और अन्य समस्याग्रस्त निर्देशिकाओं के लिए जाँच करना और अंत btrfs check --repairमें ठीक करना है। हालांकि, यह ऑपरेशन जोखिम भरा है, इसलिए पहले बैकअप फ़ाइलों के लिए यह एक अच्छा विचार है।

स्रोत: Btrfs समस्या अक्सर पूछे जाने वाले प्रश्न


1

मैं Ubuntu 16.04 पर एक ही मुद्दा था और मैं इसे द्वारा तय:

  1. कचरा फ़ोल्डर को खाली करना
  2. रिबूट

फ़ाइल प्रबंधक को खोलना और बंद करना अच्छा नहीं था - केवल रिबूटिंग ने काम किया।


0

इस आदेश का प्रयास करें:

sudo lsof | grep deleted 

सूची में जांचें कि क्या आपकी निर्देशिका अभी भी उपयोग में है। : डी

यदि हां, तो सेवा बंद कर दें और आप निर्देशिका को हटा सकेंगे।


जाहिर है कि अगर यह हटाया नहीं जा सकता है तो निर्देशिका खुले, हटाए गए फ़ाइल डिस्क्रिप्टर की सूची में दिखाई नहीं देगी। ; -]
डेविड फ़ॉस्टर 01

0

यह समस्या तब प्रकट होती है जब उन फ़ोल्डरों या फ़ाइलों को पूरी तरह से कॉपी नहीं किया जाता है। यह इनपुट / आउटपुट त्रुटि है। मैंने Shift+ Delया कमांड के माध्यम से हटाने की कोशिश की , लेकिन ये काम नहीं किया। मैंने राइट क्लिक और "मूव टू ट्रैश" की कोशिश की और यह काम कर गया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.