-prune
প্রাথমিক বলে find
একটি ডিরেক্টরি অধীনে recurse না।
find -L -path ~/.wine/dosdevices -prune -o -type f -name 'My Favorite Movie.*' -print
আপনি যদি -lname
নিজের অবস্থাতে ব্যবহার করতে চান তবে আপনি -L
বিকল্পটি ব্যবহার করতে পারবেন না , কারণ -L
বেশিরভাগ পূর্বাভাসকর্তা লিংকের লক্ষ্যে কাজ করার কারণ -lname
। সেক্ষেত্রে আমার প্রস্তাবনাটি হ'ল আপনার হোম ডিরেক্টরি এবং হার্ড ডিস্ক রুটকে আপনার অনুসন্ধানের মূল হিসাবে ব্যবহার করা।
find ~ /mnt/hdd -xtype f -name 'My Favorite Movie.*'
আপনি find ~ -type l …
প্রতীকী লিঙ্কগুলির একটি তালিকা সংগ্রহ করতে এবং এগুলি অতিরিক্ত শিকড় হিসাবে ব্যবহার করতে দৌড়াতে পারেন।
( IFS=$'\n'; set -f;
find ~ $(find ~ -type l -lname '/mnt/hdd/*') \
-xtype f -name 'My Favorite Movie.*' )
আপনি যদি সত্যিই প্রতীকী লিঙ্কগুলির অধীনে পুনরাবৃত্তি করতে চান তবে আপনি নির্দিষ্ট চিহ্নের পরিবর্তে নামের পরিবর্তে লক্ষ্যবস্তু বাদ দিতে পারেন। তবে আপনি কেবল একটি সীমাবদ্ধ তালিকা বাদ দিতে পারেন, কোনও প্যাটার্ন বা সাবট্রি এভাবে নয়।
find -L \( -samefile /exclude/this -o -samefile ~/and/that \) -prune -o \
-type f -name 'My Favorite Movie.*' -print
আপনি অন্যান্য মানদণ্ডগুলি ব্যবহার করতে পারেন ! -writable
( যেমন আপনার কাছে ফাইল লেখার অনুমতি নেই এমন ফাইলগুলি) তবে আমি মনে করি না যে জিএনইউ সন্ধানী লিঙ্কের অধীনে পুনরাবৃত্তি করার একটি উপায় কেবলমাত্র যদি তাদের টার্গেট পাঠ্যটি একটি নির্দিষ্ট অভিব্যক্তির সাথে মেলে।
আপনি একটি find
কমান্ড তৈরি করতে পারেন যা যথেষ্ট চান সিম্বলিক লিঙ্কগুলি বাদ না দিয়ে, ক্যোয়ারিকে পার্ল স্ক্রিপ্টে রূপান্তর করতে Find2perl চালান , এবং পার্ল স্ক্রিপ্টটি কিছুটা সামান্য তিরস্কার করতে পারেন। GNU- এর অনেকগুলি স্যুইচ রয়েছে যা Find2perl সনাক্ত করতে পারে না।
-prune
আমি যা খুঁজছিলাম ঠিক সেটাই। আমি খুঁজে পেয়েছি যেfind ~ \( -lname ~ -o -lname ~/\* -o -lname / \) -xtype d
আমি অনুসরণ করতে চাই না এমন সমস্ত প্রতীকের তালিকা তৈরি করে; আমি এখন সেই প্রশ্নটি ছাঁটাই করতে ব্যবহার করার একটি উপায় খুঁজতে চেষ্টা করছি।