বর্তমান ডিরেক্টরিতে ফাইল তালিকাভুক্ত করার সময় আমি ডিরেক্টরিগুলি কীভাবে বাদ দেব?
ls .
directories ডিরেক্টরিতে ডিরেক্টরি অন্তর্ভুক্ত করবে।
বর্তমান ডিরেক্টরিতে ফাইল তালিকাভুক্ত করার সময় আমি ডিরেক্টরিগুলি কীভাবে বাদ দেব?
ls .
directories ডিরেক্টরিতে ডিরেক্টরি অন্তর্ভুক্ত করবে।
উত্তর:
আর একবার চেষ্টা কর:
find . -maxdepth 1 -not -type d
ls .
ডিরেক্টরি ছাড়াই সমমানের জন্য জিজ্ঞাসা করেছিলেন - এবং এটি এখানে।
-ls
বা ডিরেক্টরি ছাড়া -exec ls -l {} \;
এটি পছন্দ করবে ls -l
।
একেবারে সমতুল্য হওয়ার জন্য ls .
আপনার লুকানো ডায়ারগুলি প্রদর্শন করা উচিত নয়।
find . -maxdepth 1 -not -type d -and -not -name '.*'
এবং এটি আপনাকে এখনও প্রতিটি ফাইলের নামের সাথে './' রেখে দেয়। এটি আসলে কোনও সমস্যা নয়, তবে আমি মনে করি এটি কৃপণ। আমি সঙ্গে গিয়েছিলাম:
ls -p | grep -v '/$'
এবং এটি আপনাকে একই রকম দেখতে একটি তালিকা পেতে পারে এবং আপনি অতিরিক্ত ls
যুক্তিও যুক্ত করতে পারেন । একটি যুক্ত করুন --color=always
এবং আপনি আপনার ডার্কোলারগুলি ফিরে পাবেন, বা -a
লুকানো ফাইলগুলি দেখতে পাবেন।
আলেকজান্ডারের উত্তরটি আমি পছন্দ করি কারণ তিনি আসলে প্রশ্নযুক্ত ফাইলটির একটি ফাইল সিস্টেমের বৈশিষ্ট্যের উপর নির্ভরশীল যাতে এটি কখনও বোকা হয়ে যায় না। আমার উত্তরটি এমন একটি ফাইল দ্বারা বোকা হয়ে যাবে যার নামের মধ্যে একটি শেষ অক্ষর হিসাবে একটি '/' রয়েছে। তবে মনে হচ্ছে এটি ঝামেলা চেয়েছে।
যদিও এটি একটি পুরানো পোস্ট, তবে আমি ভেবেছিলাম এটি সম্ভবত সাহায্য করবে ..
$ ls -l | গ্রেপ-ভি ^ d
এটি সিমলিংক, অক্ষর এবং ব্লক ফাইলগুলি সহ সমস্ত ফাইল তালিকাভুক্ত করবে।
উপরের "সন্ধান করুন" সমাধানগুলি ls এর কিছু ক্ষমতা হারাবে - উদাহরণস্বরূপ: কেবলমাত্র ফাইলগুলি তালিকাভুক্ত করুন, অবতরণ পরিবর্তনের সময় সাজানো।
"Ls -p | গ্রেপ" উত্তরগুলি ls এর অন্যান্য উপাদান যেমন -R এর সাথে তাদের পছন্দসই হওয়া উচিত, তেমন সুন্দরভাবে আচরণ করে না
নিম্নোক্ত উত্তরটি, যদিও আরও ভারবস, আমার মতে ট্রুয়েস্ট এলএস আচরণ এবং "কেবলমাত্র ফাইল" নির্বাচন করার জন্য সর্বাধিক নমনীয়তার প্রতিফলন ঘটায়
ls -t . | while read line; do
if [ -f $line ]; then
echo $line
fi
done
কেবলমাত্র ls স্যুইচগুলি পছন্দসই হিসাবে প্রতিস্থাপন করুন এবং ফলাফল কেবল ফাইলগুলি দিয়ে ফিরে আসবে। যদি লিঙ্ক এবং অন্যান্য আইটেমগুলিরও প্রয়োজন হয় তবে অন্তর্ভুক্তির জন্য পরীক্ষায় ছোটখাটো পুনর্নির্মাণ করা দরকার।
ls $(file --no-pad -F' ' * | grep -v directory | cut -d' ' -f1)
এটির সাহায্যে আপনি এখনও নেওয়া অন্য যে কোনও বিকল্প ব্যবহার করতে পারেন ls
। বা ... -v
শুধুমাত্র ডিরেক্টরি তালিকাতে সরান । বা ... file
ASCII, খালি, ELF, এবং এর মতো বোঝে এবং প্রতিবেদন করে এমন অন্য কোনও ফাইল টাইপের সাথে ডিরেক্টরিটি প্রতিস্থাপন করুন।
ls -t .|while read f;do [ -f "$f" ]&& echo $f;done
আমার পরীক্ষাগুলিতে প্রায় 3x দ্রুত
আমি এমন একটি সিস্টেমে ছিলাম যেখানে find
বাইনারি সমর্থন করে না -not
এবং আমি ব্যবহার করে শেষ করেছি:
ls|while read f;do [ -f "$f" ]&& echo $f;done
সুবিধাগুলি: sh ls echo
ব্যাশ এবং ড্যাশের সাথে সামঞ্জস্যপূর্ণ ব্যতীত অন্য কোনও কিছুর উপর নির্ভর করে
না পরিবর্তনের মাধ্যমে অন্যান্য জিনিসের সাথে (যেমন ডিরেক্টরিগুলি) পরিবর্তন করা যায় -f
কিছু উত্তরগুলির চেয়ে দ্রুত এবং কম র্যাম এবং সিপিইউ ব্যবহার করে