ডিরেক্টরি অপ্রত্যক্ষভাবে নিজের ভিতরে মুছুন


9

আমার নিজের ভিতরে একটি ডিরেক্টরি আছে। আমি কীভাবে এটি মুছে ফেলব।

~/.local/share/Trash/files$ ls devices/
reg-dummy
~/.local/share/Trash/files$ ls devices/reg-dummy/
subsystem
~/.local/share/Trash/files$ ls devices/reg-dummy/subsystem/
devices

এছাড়াও

~/.local/share/Trash/files$ find devices/ | head -n 20
devices/
devices/reg-dummy
devices/reg-dummy/subsystem
devices/reg-dummy/subsystem/devices
devices/reg-dummy/subsystem/devices/reg-dummy
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices
devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy/subsystem/devices/reg-dummy

এছাড়াও, যদিও আমার মস্তিষ্ক থামার সমস্যাটি সমাধান করতে পারে না, এটি প্রদর্শিত হয় sudo rm -rf devicesআউটপুট উত্পাদন না করে চিরতরে চলে।

~/.local/share/Trash/files$ sudo rm -rf devices
^C~/.local/share/Trash/files$

একই জিনিস perl -e 'use File::Path qw(remove_tree); remove_tree("$ENV{HOME}/.local/share/Trash/files/devices")'। একই জিনিস du -s devices/du -sch ~/.local/share/Trash/ অন্যান্য কমান্ডের জন্য একই জিনিস

$ cd ~/.local/share/Trash/files/devices/reg-dummy/subsystem/devices/
$ ls -ldi 
8131921 drwxr-xr-x 3 theking theking 4096 Mar 17 19:43 .
$ cd reg-dummy/subsystem/devices/
$ ls -dli
8131926 drwxr-xr-x 3 theking theking 4096 Mar 17 19:43 .


$ find .local/share/Trash/files/ -maxdepth 1 -delete
find: cannot delete `.local/share/Trash/files/devices': Directory not empty
find: cannot delete `.local/share/Trash/files/': Directory not empty

আমি চাই না এটি চিরতরে আমার আবর্জনায় আটকে থাকবে!

দ্রষ্টব্য: আমি কেবল ব্যবহার করে একটি কম্পিউটারের একটি অশোধিত ব্যাকআপ তৈরি scpকরছিলাম, কিন্তু আমি স্থানের বাইরে চলে গেলাম এবং এরপরে এটি ঘটল।


আপনি যে কমান্ডটি এটি মুছে ফেলার চেষ্টা করেছেন এবং এটি আপনাকে যে ত্রুটি দিয়েছিল তা দয়া করে আমাদের দেখান। কি করে rm -rf devices?
টেরডন

এছাড়াও আউটপুট যোগ করুন ls -dli devicesএবংls -dli devices/reg-dummy/subsystem/devices/
terdon

3
প্রথম কমান্ড হওয়া উচিত ছিল ls -ldi devices, না device। আমি দেখার চেষ্টা করছি যে এগুলি আসলে হার্ড লিঙ্কগুলি (একই ইনোড)। তবে, সচেতন থাকুন যে এটি যদি একটি বৃহত ডিরেক্টরি হয় তবে এটি rm -rfএকটি দীর্ঘ সময় নিতে পারে তবে শেষ পর্যন্ত কাজ করবে। যদি সমস্যাটি এখানে বিজ্ঞপ্তিযুক্ত লিঙ্ক হয় তবে আপনি অসীম পুনরাবৃত্তি সম্পর্কে একটি ত্রুটি বার্তা পাবেন। যদি কোনও ত্রুটির বার্তা না থাকে তবে কেবল rm -rfতার কোর্সটি চালানো যাক ।
টেরডন

7
@ ইটারডন: আমি ভেবেছিলাম লিনাক্স (উবুন্টু, কমপক্ষে) হার্ড-লিঙ্কযুক্ত ডিরেক্টরিগুলির অনুমতি দেয় না?
saiarcot895

2
আমি কেবল ধরে নিচ্ছি যে আপনি নির্মিত নটিলাস "খালি ট্র্যাশ" বোতামটি দিয়ে চেষ্টা করেছেন? (নটিলাস writing লেখার সময় তারা এই জাতীয় জিনিসগুলির কথা ভেবে থাকতে পারে)
মিঃ ভাইকাদজি

উত্তর:


3

এর আউটপুট ls -ldiডিরেক্টরিটির ইনোড নম্বর প্রদর্শন করবে। ডিরেক্টরিতে ডিরেক্টরিটি কেবল একই নামের পরিবর্তে যদি পূর্বসূরীর মতো একই ইনড নম্বর থাকে তবে আপনার ফাইল সিস্টেমটি দূষিত এবং আপনাকে রেসকিউ মোডে বুট করতে হবে এবং এটিকে fsck করতে হবে।


1

আমি এখনও মনে করি rm -rfআপনি এটি যথেষ্ট সময় দিলে এটি কার্যকর হবে তবে যদি তা না হয় তবে একটি বা এই দুজনেরই উচিত:

perl -e 'use File::Path qw(remove_tree); 
        remove_tree("$ENV{HOME}/.local/share/Trash/files/devices")'`

 

find .local/share/Trash/files/ -delete

আপনি নিশ্চিত করতে পারেন যে আপনি যদি কমপক্ষে ব্যবহার করেন তবে কিছু ঘটছে rm -rfv ~/.local/share/Trash/files/devicesযা আপনাকে জানাতে পারে যে ফাইলগুলি মোছা হচ্ছে।

যাইহোক, এটি একটি হার্ডলিঙ্ক সমস্যা হতে পারে না (আমার খুব ভুল মন্তব্য সত্ত্বেও) কারণ লিনাক্সের অধীনে ডিরেক্টরিগুলি হার্ডলিঙ্ক করা যায় না। সাধারণভাবে, যখন আপনার অসীম পুনরাবৃত্তি হবে, সফ্টলিঙ্কগুলির সাথে যেমন ঘটতে পারে, আপনি সেই প্রভাবটির জন্য একটি বার্তা পাবেন, যা ঘটেছিল বলে মনে হয় না।

অন্যান্য সম্ভাবনা আমি ভাবতে পারি তা হ'ল ট্র্যাশ ফোল্ডারটি এর নিজস্ব কিছু অদ্ভুত সিস্টেম। আমি জানি না এটি কীভাবে কাজ করে, আমি কখনই এটি ব্যবহার করি না। তবে সমস্যাযুক্ত ডিরেক্টরিকে লক্ষ্য না করে সরাসরি শীর্ষ স্তরের ফাইলগুলি মুছে ফেলার জন্য আপনার ভাগ্য ভাল হতে পারে:

rm -rf ~/.local/share/Trash/* 

আপনার জিইউআই থেকে ট্র্যাশ ফোল্ডারটি খালি করার চেষ্টা করা উচিত, কেবল আবর্জনা নির্বাচন করুন এবং "খালি ট্র্যাশ" এ ক্লিক করুন, দেখুন কি এটি কাজ করে।


তারা দুজনেই ব্যর্থ হয়েছিল। প্রশ্ন সংশোধিত।
পাইরুলেজ

@ পাইরুলিজ এই ডিরেক্টরিটি কত বড়? পার্ল স্ক্রিপ্ট বা না rmকোনও আউটপুট উত্পাদন করবে না । তারা কতক্ষণ দৌড়ায়? আমি findকমান্ডটিও আপডেট করেছি , আগেরটি ভুল ছিল, দুঃখিত। আপডেট করা উত্তরটি একবার দেখুন। অবশেষে, আমরা এখানে অন্ধ কাজ করছি। ls -lআপনি যেখানে ব্যবহার করেছেন তার আউটপুট দিয়ে আপনার প্রশ্নটি আপডেট করুন ls, এর ফলাফলটিও দেখান du -sch ~/.local/share/Trash/যাতে আমরা আকারটি জানি।
টেরডন

আমি আকারটি পাইনি।
পাইরুলেজ

@ পাইরুলেজ চেষ্টা করুন du -sch ~/.local/share/Trash/যা আপনাকে আকার দেবে। এবং দয়া করে বিভিন্ন মন্তব্যগুলির জন্য জিজ্ঞাসা করা সমস্ত জিনিস যুক্ত করুন, সেগুলির প্রয়োজন হয় যাতে আমরা বুঝতে পারি যে কী চলছে।
টেরডন

আমি এখন পর্যন্ত
পাইরুলেজ

0

(আমি নিশ্চিত যে এটি কাজ করবে এবং আমি এখনই যাতায়াত করতে যাচ্ছি, আমি এটি একটি উত্তর না রেখে ভবিষ্যতে মুছে ফেলতে পারব যদি এটি কাজ না করে তবে))

  1. প্রথমে নিরাপদে থাকুন, চালান

    find ~/.local/share/Trash/files/devices/ -exec echo {} \;
    
  2. দ্বিতীয়ত, যদি "1" এর আউটপুট কোনও গুরুত্বপূর্ণ ফাইল না দেখায় তবে চালান

    find ~/.local/share/Trash/files/devices/ -exec rm {} \;
    
  3. চূড়ান্ত পদক্ষেপ হবে

    find ~/.local/share/Trash/files/devices/ -empty -type d -delete
    
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.