syMLink টার্গেট দ্বারা ফাইল তালিকা


23

সিম্বলিংকের নাম নয়, প্রতীকী লিঙ্ক লক্ষ্য নামের মাধ্যমে ফিল্টার করে আমি কীভাবে ফাইলের তালিকা (এবং তারপরে সেই তালিকাটি দিয়ে কিছু করব) করব ? উদাহরণস্বরূপ নিম্নলিখিত তালিকা থেকে আমি কেবল প্রথম চারটি ফাইলের মধ্যে আগ্রহী (লক্ষ্যযুক্ত bar):

foo ->  /tmp/bar
bar ->  /home/me/bartoo
baz ->  /home/me/public/barthree
zoo ->  /usr/share/bar
moo ->  /tmp/foo
roc ->  /tmp/roc

উত্তর:


31

আপনি সিমলিংক টাইপের সমস্ত ফাইল আনার জন্য অনুসন্ধান ব্যবহার করতে পারেন -ilnameএবং লিঙ্ক গন্তব্যের নাম অনুসারে অনুসন্ধানের বিকল্পটি যুক্ত করতে পারেন। এটি ঠিক মত কাজ করে -inameতবে লিঙ্ক নামের পরিবর্তে লিঙ্ক লক্ষ্য নামের জন্য।

find -type l -ilname "*bar*"

এটি এখনও লক্ষ্যটির বাইরে নয়, লিঙ্কটির নাম মুদ্রণ করবে। আপনি যদি লক্ষ্যগুলির নাম মুদ্রণ করতে চান তবে এটি চেষ্টা করুন:

find -type l -ilname "*bar*" -printf "%l\n"

অথবা একটি পূর্ণ lsশৈলীর আউটপুট পান

find -type l -ilname "*bar*" -ls

" তালিকার সাথে কিছু করুন " বলতে আপনার অর্থ কীটি অস্পষ্ট, তবে আপনি যদি লিঙ্ক ফাইলগুলিতে পরিচালনা করতে চান তবে আপনি এই -execযুক্তিটি সন্ধান করতে পারেন:

find -type l -ilname "*bar*" -exec touch {} \;

তবে যদি আপনাকে লিঙ্ক টার্গেটগুলিতে অপারেশন করার প্রয়োজন হয় তবে আপনাকে -printfলক্ষ্য মানগুলি পেতে এবং তারপরে xargsবা কিছু চালানোর জন্য নিজেকে লুপ করতে হবে। আপনি এরকম কিছু করতে পারেন:

find -type l -printf "%l\n" | grep bar | xargs touch

... যা আপনার নামের সাথে মিলে যাওয়ার grepপরিবর্তে কীভাবে ব্যবহার করতে হয় তাও দেখায় find -ilname, যদিও আপনি যেভাবেই এটি করতে পারেন could


ধন্যবাদ কালেব! আপনি আমার তাত্ক্ষণিক প্রশ্নের পুরোপুরি উত্তর দিয়েছিলেন এবং পাশাপাশি কয়েকটি পাশের চ্যানেল কেসগুলিও আবৃত করেছেন যা আমি অবশ্যই ব্যবহার করব।
ম্যাট উইলকি

1
কোন ধারণা কেন এটি find /dev/disk/ -type l -ilname "*sde*"কাজ করে না?
কুম্ভ শক্তি

GNU অনুসন্ধান প্রয়োজন।
ceving
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.