পাথ ছাড়াই এক্সিকিউটেবল ফাইলের নামগুলি সন্ধান করুন


9

আমার কাছে অনেক এক্সিকিউটেবলের সাথে একটি ফোল্ডার রয়েছে এবং আমি ফাইন্ড কমান্ডের ফলাফলগুলিতে পথটি বাদ দিতে চাই। এই কমান্ডটি আমি দেখতে চাইলে ফাইলগুলি প্রদর্শন করে তবে এটি পথটিও তালিকাভুক্ত করে; আমি শুধু ফাইলের নাম চাই।

find /opt/g09 -maxdepth 1 -executable

কেবলমাত্র ফাইলের নামগুলি দেখানোর জন্য এবং পুরো পথটি খুঁজে পাওয়ার ফলাফলটি কীভাবে পাব?

উত্তর:


10

বা ব্যবহার করুন:

find /opt/g09 -maxdepth 1 -executable -printf "%f\n"

যোগ -type fপতাকা এখানে কাজ করে।

findম্যানুয়াল থেকে :

 %f     File's name with any leading directories removed (only the last element).

এই উত্তরের কেবলমাত্র আপনার জিএনইউ থাকা দরকার findঅন্যদিকে আপনার ফলাফলগুলি পরিচালনা করতে অন্যান্য প্রোগ্রামের প্রয়োজন।


টাইপ চ আমি যেভাবে ভাবতে চাইছিলাম তা! ধন্যবাদ কোডিং ম্যান!
j0h

@ j0h সমস্যা নেই!
নিক্সপাওয়ার

6

ব্যবহার basename:

find /opt/g09 -maxdepth 1 -executable -exec basename {} \;

থেকে man basename:

Print NAME with any leading directory components removed.

এছাড়াও আপনি findনিজের অনুসন্ধানকে কেবল ফাইলগুলিতে সীমাবদ্ধ করতে, সবকিছুতে চেষ্টা করছেন : ব্যবহার করুন:

find /opt/g09 -type f -maxdepth 1 -executable -exec basename {} \;

3

আমার সবচেয়ে সুস্পষ্ট সমাধান হ'ল solution

(cd /opt/g09; find -maxdepth 1 -executable)

আপনি একটি সাবশেল শুরু করার কারণে আপনি একই ডিরেক্টরিতে রয়েছেন। এই পদ্ধতির সুবিধা হ'ল আপনার পার্সিংয়ের দরকার নেই। অসুবিধাটি হ'ল আপনি একটি সাব-শেল শুরু করেছেন (যদিও আপনি এটি অনুভব করছেন না)।


1
এটি একটি চতুর ধারণা।
এবি

1

সঙ্গে awk, বিভেদক দ্বারা পাথ বিভাজন /, গত অধ্যায় মুদ্রণ ( $NF):

find /opt/g09 -maxdepth 1 -executable | awk -F/ '{print $NF}'

আপনার অজগর সংস্করণ ব্রো কোথায়? ;)
সের্গেই কলডিয়াজনি 16

@ সার্গ হা হা, আমাকে আমার আঙ্গুল বাঁধতে হয়েছিল :)
জ্যাকব ভিলিজ

1

findএবং এর সংমিশ্রণ ব্যবহার করেperl

find /opt/g09 -maxdepth 1 -type f -executable | perl -pe 's/.+\/(.*)$/\1/'

কিছু পার্ল শিখার দুর্দান্ত উপায়: পি
নিক্সপাওয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.