ফাইল তালিকাভুক্ত করার সময় আমি ডিরেক্টরিগুলি কীভাবে বাদ দেব?


21

বর্তমান ডিরেক্টরিতে ফাইল তালিকাভুক্ত করার সময় আমি ডিরেক্টরিগুলি কীভাবে বাদ দেব?

ls .

directories ডিরেক্টরিতে ডিরেক্টরি অন্তর্ভুক্ত করবে।

উত্তর:


23

আর একবার চেষ্টা কর:

find . -maxdepth 1 -not -type d

3
এটি সহজ রাখুন: $ সন্ধান করুন।
-প্রকার

9
নং (1) এটি পুনরাবৃত্ত হবে, (২) এটি প্রতিলিঙ্কগুলি তালিকাবদ্ধ করবে না। @ স্টিভ ls .ডিরেক্টরি ছাড়াই সমমানের জন্য জিজ্ঞাসা করেছিলেন - এবং এটি এখানে।
আলেকজান্ডার গ্ল্যাডিশ

2
যোগ করা -lsবা ডিরেক্টরি ছাড়া -exec ls -l {} \;এটি পছন্দ করবে ls -l
লাদাদাদাদা

15

একেবারে সমতুল্য হওয়ার জন্য ls .আপনার লুকানো ডায়ারগুলি প্রদর্শন করা উচিত নয়।

find . -maxdepth 1 -not -type d -and -not -name '.*'

এবং এটি আপনাকে এখনও প্রতিটি ফাইলের নামের সাথে './' রেখে দেয়। এটি আসলে কোনও সমস্যা নয়, তবে আমি মনে করি এটি কৃপণ। আমি সঙ্গে গিয়েছিলাম:

ls -p | grep -v '/$'

এবং এটি আপনাকে একই রকম দেখতে একটি তালিকা পেতে পারে এবং আপনি অতিরিক্ত lsযুক্তিও যুক্ত করতে পারেন । একটি যুক্ত করুন --color=alwaysএবং আপনি আপনার ডার্কোলারগুলি ফিরে পাবেন, বা -aলুকানো ফাইলগুলি দেখতে পাবেন।

আলেকজান্ডারের উত্তরটি আমি পছন্দ করি কারণ তিনি আসলে প্রশ্নযুক্ত ফাইলটির একটি ফাইল সিস্টেমের বৈশিষ্ট্যের উপর নির্ভরশীল যাতে এটি কখনও বোকা হয়ে যায় না। আমার উত্তরটি এমন একটি ফাইল দ্বারা বোকা হয়ে যাবে যার নামের মধ্যে একটি শেষ অক্ষর হিসাবে একটি '/' রয়েছে। তবে মনে হচ্ছে এটি ঝামেলা চেয়েছে।


1
'-নট' সম্পর্কিত নয় এটি জিএনইউ সম্পর্কিত, কারণ এটি পসিক্স অনুগত নয়, এই বিকল্পগুলি না শেখানো ভাল কারণ কোনও ব্যবহারকারী "খারাপ" অভ্যাস থাকতে পারে এবং অন্য ইউনিক্সের কাছে হারিয়ে যেতে পারে :)
জিরিব

2
পুনঃটুইট করেছেন
লুকাস গ্যালিন্ডো

5

এটা চেষ্টা কর:

আমি খুঁজে। -প্রকার চ-ম্যাক্সডেপথ 1

অথবা এটা:

$ ls -p | egrep -v / $

$ ls -la | egrep -v ^ d


3

যদিও এটি একটি পুরানো পোস্ট, তবে আমি ভেবেছিলাম এটি সম্ভবত সাহায্য করবে ..

$ ls -l | গ্রেপ-ভি ^ d

এটি সিমলিংক, অক্ষর এবং ব্লক ফাইলগুলি সহ সমস্ত ফাইল তালিকাভুক্ত করবে।


এই উত্তরটি ইতিমধ্যে জ্যামজেড করে এক বছর আগে সরবরাহ করা হয়েছিল (এই ভিজ্যুয়াল শোরগোল তৈরি করে))
অ্যালেক্সেক্স রোচে

2

উপরের "সন্ধান করুন" সমাধানগুলি ls এর কিছু ক্ষমতা হারাবে - উদাহরণস্বরূপ: কেবলমাত্র ফাইলগুলি তালিকাভুক্ত করুন, অবতরণ পরিবর্তনের সময় সাজানো।

"Ls -p | গ্রেপ" উত্তরগুলি ls এর অন্যান্য উপাদান যেমন -R এর সাথে তাদের পছন্দসই হওয়া উচিত, তেমন সুন্দরভাবে আচরণ করে না

নিম্নোক্ত উত্তরটি, যদিও আরও ভারবস, আমার মতে ট্রুয়েস্ট এলএস আচরণ এবং "কেবলমাত্র ফাইল" নির্বাচন করার জন্য সর্বাধিক নমনীয়তার প্রতিফলন ঘটায়

ls -t . | while read line; do
  if [ -f $line ]; then
    echo $line
  fi 
done

কেবলমাত্র ls স্যুইচগুলি পছন্দসই হিসাবে প্রতিস্থাপন করুন এবং ফলাফল কেবল ফাইলগুলি দিয়ে ফিরে আসবে। যদি লিঙ্ক এবং অন্যান্য আইটেমগুলিরও প্রয়োজন হয় তবে অন্তর্ভুক্তির জন্য পরীক্ষায় ছোটখাটো পুনর্নির্মাণ করা দরকার।


0
ls $(file --no-pad  -F' '  * | grep -v directory | cut -d' ' -f1)

এটির সাহায্যে আপনি এখনও নেওয়া অন্য যে কোনও বিকল্প ব্যবহার করতে পারেন ls। বা ... -vশুধুমাত্র ডিরেক্টরি তালিকাতে সরান । বা ... fileASCII, খালি, ELF, এবং এর মতো বোঝে এবং প্রতিবেদন করে এমন অন্য কোনও ফাইল টাইপের সাথে ডিরেক্টরিটি প্রতিস্থাপন করুন।


তালিকাভুক্ত করা ফাইলের যে কোনও একটিতে ফাঁকা জায়গা থাকলে এটি কাজ করে না।
সাইকোনাট

ls -t .|while read f;do [ -f "$f" ]&& echo $f;doneআমার পরীক্ষাগুলিতে প্রায় 3x দ্রুত
অ্যালেক্সেক্স রোচে

0

আমি এমন একটি সিস্টেমে ছিলাম যেখানে findবাইনারি সমর্থন করে না -notএবং আমি ব্যবহার করে শেষ করেছি:

ls|while read f;do [ -f "$f" ]&& echo $f;done

সুবিধাগুলি: sh ls echo
ব্যাশ এবং ড্যাশের সাথে সামঞ্জস্যপূর্ণ ব্যতীত অন্য কোনও কিছুর উপর নির্ভর করে
না পরিবর্তনের মাধ্যমে অন্যান্য জিনিসের সাথে (যেমন ডিরেক্টরিগুলি) পরিবর্তন করা যায় -f
কিছু উত্তরগুলির চেয়ে দ্রুত এবং কম র‌্যাম এবং সিপিইউ ব্যবহার করে

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