প্রতীকী লিঙ্ক: এই ফাইলটিতে লিঙ্কযুক্ত সমস্ত ফাইল সন্ধান করুন


115

হ্যালো, লিনাক্সে আমার এটি করা দরকার:

  • প্রদত্ত: ফাইলের নাম 'foo.txt'
  • অনুসন্ধান করুন: সমস্ত ফাইল যা 'foo.txt' এর প্রতীকী লিঙ্ক

এটা কিভাবে করতে হবে? ধন্যবাদ!


উত্তর:


132

এটি নির্ভর করে, আপনি যদি নির্দিষ্ট একটি ফাইলের জন্য লিঙ্কগুলি অনুসন্ধান করার চেষ্টা করছেন foo.txt,তবে এটিই একমাত্র ভাল উপায়:

find -L / -samefile path/to/foo.txt

অন্যদিকে, আপনি যদি নামকরণ হতে পারে এমন কোনও ফাইলের লিঙ্কগুলি সন্ধান করার চেষ্টা করছেন foo.txt, তবে এর মতো কিছু

find / -lname foo.txt

অথবা

find . -lname \*foo.txt # ignore leading pathname components

সমস্যাটি সুন্দরভাবে সমাধান করা। জবাব দেওয়া সকল লোককে ধন্যবাদ।
lukmac

8
আমি যেমন মুছে ফেলা উত্তরে মন্তব্য করেছি, আপনি -xtype lকেবলমাত্র তালিকার
সিমলিংকগুলি

আপনি পুনরাবৃত্তি করতে চাইতে পারেন, যেহেতু foo.txt এর দিকে ইঙ্গিত করা ফাইলগুলির মধ্যে যে কোনও ফাইল নিজেরাই অন্য কয়েকটি লিঙ্ক দ্বারা পয়েন্ট করা যেতে পারে ... যেমন: এ-> বি-> foo.txt, / tmp / C-> বি-> foo.txt, ইত্যাদি
অলিভিয়ার ডুলাক

আপনার নামের উপাদানটি লিঙ্কটির নামের একটি মূল ডিরেক্টরি হিসাবে অনুসন্ধান করে find . -lname '*foo.dir*'(মেলে যেমন file.txt -> ../foo.dir/file.txt)
যোনাতন

22

ফাইলটির ইনোড নম্বরটি সন্ধান করুন এবং তারপরে একই ইনোড নম্বর সহ সমস্ত ফাইল অনুসন্ধান করুন:

$ ls -i foo.txt
41525360 foo.txt

$ find . -follow -inum 41525360

বিকল্পভাবে, lnameবিকল্পটি চেষ্টা করে দেখুন find, তবে আপনার যদি আপেক্ষিক সিমলিংক থাকে তবে এটি কাজ করবে নাa -> ../foo.txt

$ find . -lname /path/to/foo.txt

3
জিএনইউ -samefile-L
সন্ধানের

5
তবে এটি অন্যান্য ফাইল সিস্টেমে ফাইলগুলিও খুঁজে পেতে পারে যা একই ইনোড নম্বর হয়।
ডিজিটালরোস 31:11

যদি fooডিরেক্টরি ln -diহয় তবে এক লাইনে ব্যবহার করুন :find . -follow -inum $(ls -di foo.txt |cut -d" " -f1)
রুব 77 ই

1
এই উত্তরটি ভুল। একটি সিমিলিংকের লক্ষ্য হিসাবে একই ইনোড নেই। এটি কেবল একটি সিমলিঙ্কযুক্ত ফোল্ডারের ভিতরে থাকা কোনও ফাইলের জন্য কাজ করবে। তবে এটি যা বলা হয়েছিল তা নয়।
জুলস লামুর

4

আমি symlinksইউটিলিটিটি ব্যবহার করতে পছন্দ করি , যা ভাঙা প্রতিলিঙ্কগুলি অনুসন্ধান করার সময়ও কার্যকর। এর মাধ্যমে ইনস্টল করুন:

sudo apt install symlinks

বর্তমান ফোল্ডার এবং সাবফোল্ডারগুলিতে সমস্ত সিমলিঙ্কগুলি দেখান:

symlinks -rv .
  • -r: পুনরাবৃত্তি
  • -v: ক্রিয়াপদ (সমস্ত প্রতীকগুলি দেখান, কেবল ভাঙ্গা নয়)

একটি নির্দিষ্ট syMLink সন্ধান করতে, কেবলমাত্র grep:

symlinks -rv . | grep foo.txt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.