উত্তর:
এই কমান্ডটি প্রদত্ত বিভাগে সমস্ত এন্ট্রি বাছাই করা নাম তালিকাভুক্ত করে:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u
আপনি যদি পথের নামগুলি দেখতে চান তবে ব্যবহার করুন:
man -aWS 1 \* | sed 's/\.[^.]*$//' | sort
এটি man
ওয়াইল্ডকার্ড প্যাটার্ন ব্যবহার করে সমস্ত কমান্ডের জন্য একটি বিভাগ অনুসন্ধান করতে বলে *
(ব্যাকস্ল্যাশ-উদ্ধৃত যাতে শেলটি এটি ব্যাখ্যা করে না)। -a
সমস্ত মিল খুঁজে পেয়েছে, -W
পৃষ্ঠাগুলি প্রদর্শনের পরিবর্তে পাঠ্য নামগুলি মুদ্রণ করে এবং -S 1
বিভাগের একটি নির্দিষ্ট করে। 1
আপনি যে বিভাগটি অনুসন্ধান করতে চান তাতে পরিবর্তন করুন ।
sed
কমান্ড ফাইলের নাম এক্সটেনশন রেখাচিত্রমালা; আপনি যদি সম্পূর্ণ ফাইলের নাম দেখতে চান তবে এটি সরান। sort
ফলাফলগুলি -u
সাজায় ( সদৃশগুলি মুছে ফেলে)।
সুবিধাজনক পুনঃব্যবহারের জন্য, এটি একটি বাশ শেল কার্যকারিতা সংজ্ঞায়িত করে:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
উদাহরণস্বরূপ, আপনি mansect 3
বিভাগে তিনটি এন্ট্রিগুলি দেখতে এটি আহ্বান করতে পারেন ।
[ম্যাকোজে পরীক্ষিত।]
uniq
পাইপলাইনে কোনও স্থাপন করা ঠিক করে না।
sort -u
সদৃশ অপসারণের জন্য আমি সাজানো কমান্ডটি আপডেট করেছি ।
নির্দিষ্ট বিভাগ থেকে সমস্ত ইনস্টল করা ম্যান পেজ তালিকাভুক্ত করতে আপনি অ্যাপ্রোপস ব্যবহার করতে পারেন :
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
man -a -s 2 '*'
ম্যানাপেজগুলি সাধারণত স্থাপন করা হয় /usr/share/man
, তবে চেক $MANPATH
করা হয় এবং এর মতো বিভাগগুলিতে সংগঠিত হয়:
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
সুতরাং সমস্ত ইনস্টল করা বিভাগ 2 ম্যানাপেজগুলি তালিকাভুক্ত করতে, করুন:
ls /usr/share/man/man2/
বা আরও সম্পূর্ণ এক:
find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'
যদি আপনার $MANPATH
নামের সাথে স্পেস দিয়ে ডিরেক্টরি থাকে তবে পরেরটির সমস্যা হবে ।
বেশিরভাগ বিতরণে আপনি একটি প্যাকেজ সরঞ্জাম সহ উপলভ্য ম্যান পেজগুলিও পরীক্ষা করতে পারেন, উদাহরণস্বরূপ ডিবিয়ান ডেরাইভড ডিস্ট্রিবিউশনগুলিতে আপনি এর apt-file
মতো ব্যবহার করতে পারেন :
apt-file search /man2/
lman 2
এবং প্রতিটি পৃষ্ঠার জন্য অলংকৃত নামকে একটি নতুন লাইনে তালিকাবদ্ধ করে সেগুলিকে পৃষ্ঠাগুলি দেয়। ফাংশনটির দেহটি হ'ল:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
আমি জানি এটি একটি খুব পুরানো প্রশ্ন, তবে এখানে দেওয়া উত্তরগুলি আমার পক্ষে কার্যকর হয়নি। সুতরাং আমি নীচের ওয়ান-লাইনার নিয়ে এসেছি যা উবুন্টু 18.04 এবং ম্যাকোস মোজভেভ, 10.14.6 এ কাজ করে:
find $(man --path | tr ':' ' ') -type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//' | sort
দ্রুত চালানো ডাউন:
$(man --path | tr ':' ' ')
ম্যান পৃষ্ঠাগুলির বর্তমান পাথ পেতেfind <man paths> -type f -path '*man2*' -exec basename {} \;
ম্যান পাথগুলিতে নিয়মিত সমস্ত ফাইলের ফাইলের নাম পাওয়া যায়sed
ফাইল এক্সটেনশন পরিত্রাণ পেতেsort
বর্ণানুক্রমে।