আমি কীভাবে আমার কম্পিউটারে এমন কোনও ফাইলের তালিকা পেতে পারি যা কোনও প্যাকেজের দ্বারা "মালিকানাধীন" নয়?


9

আমি এমন একটি স্ক্রিপ্ট লিখতে ভাবছি যা এটি করে:

  • প্রতিটি ফাইল / usr / lib এ যায়
  • একটি করে dpkg -sপ্রতিটি ফাইল খোঁজ।
  • কোনও .deb প্যাকেজভুক্ত নয় এমন "অনাথ" ফাইলগুলির একটি তালিকা প্রতিবেদন করে।

ধারণাটি হ'ল সময়ের সাথে সাথে, আমি প্রচুর make installসফ্টওয়্যার ইনস্টল করেছি এবং আমি নিজে থেকে ইনস্টল করা সফ্টওয়্যার থেকে বাম ফাইলগুলির একটি তালিকা পেতে চাই যা আমি মুছে ফেলেছি।


ভবিষ্যতে, প্যাকেজিং সিস্টেমের বাইরে আপনি যা কিছু ইনস্টল করেছেন তা / usr / স্থানীয় বা / অপ্টে ইনস্টল করা হয়েছে তা নিশ্চিত করুন। তারপরে আপনার স্পষ্ট বিচ্ছেদ হবে।
গিরিহা

উত্তর:


8
find /usr/lib -type f -exec dpkg -S {} + 2>&1 >/dev/null | sed -r 's/^[^/]+//'

আমি আপনাকে এখনই সতর্ক করব: এটি ধীর।


3
: এটা আরো দ্রুতfind /usr/lib -type f -exec dpkg -S {} + | grep 'no path found'
αғsнιη

1
সেখানে কোনও মতবিরোধ নেই। 2012 এর অলি 2015 এর মতো ভাল ছিল না। আমি এটি আপডেট করেছি তাই এটি কেবল ফাইলগুলির একটি তালিকা ফেরত দেয়।
অলি

3

আপনি নিম্নলিখিত কমান্ড চালাতে পারেন

join -t '' -v1 <(find /usr/lib | sort) \
               <(grep -h /usr/lib /var/lib/dpkg/info/*.list | sort -u)

যা /usr/libঅন্তত একটি ফাইলের /var/lib/dpkg/info/<NAME>.list( উপস্থিত ফাইলগুলির) উপস্থিত ফাইলগুলির তালিকার সাথে ফাইলগুলির তালিকার তুলনা করে dpkg -S-v1বিকল্প প্রথম তালিকায় উপস্থিত কিন্তু দ্বিতীয় নেই ফাইল প্রতিবেদন হবে।

আমার মেশিনে এই পার্থক্য তালিকাটি 5000 টিরও বেশি হিট দেয়, তাই আমি সন্দেহ করি যে এটি কোনও উপকারে আসতে পারে।


আমার জন্য সত্যই দ্রুত কাজ করে।
ব্যবহারকারী1202136

2
sudo aptitude install cruft
man cruft
sudo addgroup cruft
sudo chmod g+rwx /var/spool/cruft
sudo chown root:cruft /var/spool/cruft
sudo addgroup $USER cruft
cruft -r cruftreport
sudo chown root:root /var/spool/cruft
less cruftreport

1
আমি man cruftসেখানে পছন্দ করি, তবে ক্রাফ্ট সম্পর্কে একটি সামান্য বিট আরও ব্যাখ্যা এবং আপনি কেন এটি সুপারিশ করবেন তা সুপারিশ করুন! : পি ;-)
ফাব্বি

এটি কাজ করবে না, আরও সুনির্দিষ্ট: (1) "আবদ্ধ: 'রুট: ক্রাফ্ট' এর পরে অনুপস্থিত missing লিখতে হবে: "সুডো ক্লাউন রুট: ক্রুফ্ট / ভার / স্পুল / ক্রুফ্ট" পরিবর্তে (২) "সুডো অ্যাডগ্রুপ $ ইউএস ক্রুফ্ট" এর জন্য নতুন শেল (পুনঃজাগরণ) বন্ধ / খোলার প্রয়োজন হবে। (3) কলিং ক্রাফ্টের জন্য "সুডো ক্রুফ্ট" লাগবে যদি আপনি সমস্ত ডায়ারগুলি পরীক্ষা করতে চান।
মুইনালান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.