ইউনিক্সের একটি ফাইলের সমস্ত প্রতীকী এবং হার্ড লিঙ্কগুলি সন্ধান করা


9

যদি আমার ইউনিক্স ফাইল সিস্টেমে একটি নির্দিষ্ট ফাইল থাকে, তবে সেই ফাইলটির সমস্ত লিঙ্ক, প্রতীকী এবং শক্ত উভয় সন্ধান করার জন্য ব্যাশ ব্যবহার করার কোনও উপায় আছে কি? যদি আমার প্রত্যেকের জন্য আলাদা কমান্ডের প্রয়োজন হয় তবে সেগুলি কী?

উত্তর:


8

জিএনইউ দিয়ে এটি ব্যবহার করে দেখুন find:

find /start/dir -L -samefile /file/to/check -exec ls -li {} \;

উদাহরণ আউটপুট:

1234704 -rw-r--r-- 2 user1 user1 1134 2009-09-11 11:12 ./x1
1234704 -rw-r--r-- 2 user1 user1 1134 2009-09-11 11:12 ./x2
1234983 lrwxrwxrwx 1 user1 user1 2 2009-10-31 16:56 ./testx -> x1
2345059 lrwxrwxrwx 1 user2 user2 2 2010-01-03 16:17 ./x3 -> x1

আপনি এর -lsপরিবর্তে ব্যবহার করতে পারেন -execতবে এটি পৃথক ফাইলের পরিবর্তে লক্ষ্য ফাইলের আইनोড এবং অন্যান্য তথ্য প্রদর্শন করবে।


এই আউটপুটটি হার্ড এবং সিম লিঙ্কগুলি দেখাচ্ছে? সাইম লিঙ্কগুলি -> তীর দ্বারা নির্দেশিত?
আয়েদান

@ আয়েদান: হ্যাঁ, এটা ঠিক। X1 এবং x2 এর ইনোড নম্বর একই নির্দেশ করে যে তারা শক্ত লিঙ্কগুলি। তীরটি একটি সিমিলিংকে নির্দেশ করে। ব্যবহার -Lএবং -samefileউভয় তালিকাবদ্ধ হতে কারণ। যদি আপনি বাদ দেন -Lতবে প্রতীকী লিঙ্কগুলি অনুসরণ করা হয় না (দেখুন man find)।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

2

আপনার যদি জিএনইউ না থাকে তবে আপনি এটি করতে পারেন:

find / -inum "$(ls -i /file/to/check | cut -d ' ' -f 1)"

তবে এটি প্রতীকী লিঙ্কগুলির জন্য কাজ করবে না।


1
: ওহ আমি এখন দেখি যে এই প্রশ্নের ইতিমধ্যে উত্তর এই superuser.com/questions/12972/to-see-hardlinks-by-ls
Ollie বিযয়ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.