'Ls' কমান্ডের সাথে এমন কোন বিকল্প নেই যা আমি কেবল ডিরেক্টরিগুলি দেখতে পারি?


73

কখনও কখনও, আমাকে কেবল ফাইলগুলি নয় ডিরেক্টরিগুলি পরীক্ষা করতে হবে। Ls কমান্ডের সাথে কোন বিকল্প নেই? নাকি তা করার কোনও ইউটিলিটি আছে?

সম্পাদনা : আমি Mac OS X এর ব্যবহার করছি, এবং ls -dআমাকে দেয় .যদিও আমি ডিরেক্টরি আছে।


4
কেউ কি ব্যাখ্যা করতে পারে ls -dযে কেবল কেন দেয় .এবং কেন */এটির কাজটি করতে শেষের দিকে যুক্ত করা উচিত?
cwd

3
@cwd আপনি কোন ফাইল উল্লেখ না করেন, তাহলে lsডিফল্ট .। এবং এর -dঅর্থ ডিরেক্টরিটির বিষয়বস্তু মুদ্রণ করবেন না, ডিরেক্টরি নিজেই মুদ্রণ করুন।
মিকেল 23'12

1
@cwd ls -pএটি ব্যবহার /করে ডিরেক্টরি নামের পরে দেখায় চেষ্টা করুন । সুতরাং */ঠিক একটি প্যাটার্ন যা ডিরেক্টরি নামের এবং /কম্বোর সাথে মেলে ।
পিট

আমি আমার। / .Bash_aliases ফাইলের জন্য @ স্টিভেন_ডির জবাব বাস্তবায়নের জন্য একটি ফাংশন তৈরি করেছি: gist.github.com/rjurney/998f4951a57bfa5daeb9a6c18f6f4827
rjurney

উত্তর:


84

আমি জানি ইতিমধ্যে একটি নির্বাচিত উত্তর রয়েছে, তবে আপনি অনুরোধের সাথে আচরণটি পেতে পারেন ঠিক ls:

ls -ld -- */

(নোট করুন যে '-' পরামিতিগুলির শেষ চিহ্নিত করে, ফাইলে নামগুলি হাইফেন দিয়ে শুরু করে পরবর্তী কমান্ড বিকল্প হিসাবে ব্যাখ্যা করা থেকে বিরত করে))

এটি চলমান চলমান ডিরেক্টরি ডিরেক্টরিতে পরিচালিত ডিরেক্টরিগুলিতে সমস্ত অ গোপনীয় (আপনার শেলের গ্লোবগুলিকে প্রসারিত করার জন্য কনফিগার না করা) তালিকায় রাখবে (দ্রষ্টব্য যে এতে ডিরেক্টরিতে প্রতীকী লিঙ্ক অন্তর্ভুক্ত রয়েছে)। অন্য কোনও ফোল্ডারের সমস্ত উপ-ডিরেক্টরিগুলি পেতে, কেবল চেষ্টা করুন:

ls -ld /path/to/directory/*/

নোট করুন যে -l alচ্ছিক।


5
খুশী হলাম। আমি কখনই বিবেচনা করি নি যে ডিরেক্টরিগুলির /শেষের উপর অন্তর্ভুক্ত রয়েছে - তবে এখন আমি আপনাকে উত্তরটি দেখতে পেয়েছি এটি অর্থবোধক। সর্বোপরি, ট্যাব-সমাপ্তি সর্বদা এটি যুক্ত করে।
gvkv

-d for dir, -l for long format। এর উদ্দেশ্য কি --?
দিনেশকুমার

1
যদিও এটি সংক্ষিপ্ত দেখাচ্ছে এবং বেশিরভাগ ক্ষেত্রে কাজ করে, কোনও সত্য ডিরেক্টরি প্রয়োজন হলে ডিরেক্টরিটির সিমলিংক না হয়েও কেউ এই পদ্ধতিটি ব্যবহার করতে না পারে। সেক্ষেত্রে findআসলে একটি ভাল পছন্দ।
বায়োসাইবারম্যান

1
findডিরেক্টরিগুলির সংখ্যাটি সর্বোচ্চ যুক্তির দৈর্ঘ্য ছাড়িয়ে গেলেও সুবিধা রয়েছে advantage
স্টিভেন ডি

পিছন ওয়ার্কিং, আমি শুধু বুঝতে পেরেছি আপনি কেবল একটি এক্সটেনশন সাথে কাউকে উপেক্ষা করতে পারেন: ls -alhF --ignore=*.*। নিশ্চিত নয় যে এটি 'লুকানো' ফোল্ডারগুলি কীভাবে পরিচালনা করবে, যেমন.myHiddenFolder
টিমমাহ

14

না, তবে একটি সাধারণ findআদেশ এটি করবে:

find . -type d -depth 1

অথবা grep

ls -F | grep /

তারপরে আপনি প্রয়োজনে উভয়কেই একটি নাম রাখতে পারেন।


6
উবুন্টু 14.04 এ ছিল -maxdepth 1। এছাড়াও findআমি অর্ডারটি সরিয়ে দিতে চেয়েছিলাম:find . -maxdepth 1 -type d
ব্র্যাড কাপিট

যে ls -F | grep /সমাধান বিস্ময়কর কাজ করে! মনে হয় এটি কেবলমাত্র আমার ফ্রিবিএসডি মেশিনে কাজ করতে পারি। আমি মনে করি ফিশ ব্যবহারের অর্থ এমন কিছু যা */কাজ নাও করতে পারে?
সিজেএম

আমি কখনই ফিশের সাথে কাজ করি নি তাই আমি সে সম্পর্কে নিশ্চিত নই তবে -এফ বিকল্পটি বিস্ময়করভাবে কাজ করতে পারে।
gvkv

7

আমি ডিরেক্টরি কাঠামোর উপর একটি ওভারভিউ পেতে ট্রি ইউটিলিটি পছন্দ করি । এটি ম্যাকপোর্টস এবং সমস্ত লিনাক্স ডিস্ট্রিবিউশনগুলিতে উপলব্ধ আছে।

tree -d -L 2

এটি সমস্ত ডিরেক্টরি দেখায়, দুটি স্তরের গভীর।


5

আমারও গোপনীয় ডিরেক্টরিগুলি দেখার দরকার ছিল তাই আমার প্রয়োজনীয়তার সাথে ফিট করার জন্য উপরের পরামর্শটি সংশোধন করেছি

ls -d -- */ .*/

(শেলের উপর নির্ভর করে, এতে অন্তর্ভুক্ত থাকতে পারে .এবং ..)


2

সঙ্গে zsh(যেমন MacOS ডিফল্টরূপে পাওয়া যায় নি, এটা এমনকি ব্যবহার করা হয় /bin/shসেখানে), আপনি তাদের ধরনের উপর ভিত্তি করে ফাইল নির্বাচন করতে উল্লিখিত glob কোয়ালিফায়ার ব্যবহার করতে চাই:

  • গোপন না করা ডিরেক্টরিগুলির তালিকা করুন:

    ls -d -- *(/)
    
  • সমস্ত ডিরেক্টরি তালিকাবদ্ধ করুন:

    ls -d -- *(D/)
    

    ( .এবং ..সর্বদা বাদ থাকে, যদি আপনি চান তবে সেগুলি পৃথকভাবে যুক্ত করুন)

  • ডিরেক্টরিতে প্রতিলিঙ্কগুলি অন্তর্ভুক্ত করুন:

    ls -d -- *(D-/)
    

    ( -তাই আরও বাছাইকারীদের সিমলিংক রেজোলিউশনের পরে প্রয়োগ করে)।


-1

আমি মনে করি ম্যাক ওএস এক্সে এলএসের একটি বাগ রয়েছে gre ls -l / | grep "^d"


1
এটা জানা আমি একমাত্র ব্যক্তি ব্যবহার করে নই চমৎকার grep "^d"হ্যাক
মাইকেল Mrozek

6
আমি যতদূর জানি, তিনি যে আচরণটি বর্ণনা করেছেন তা কোনও বাগ নয় এবং যদি কেউ জিএনইউ ব্যবহার করে তবে একই রকম। -D বিকল্পটি ডিরেক্টরিগুলির জন্য তালিকা প্রদর্শন করে না সামগ্রীগুলি। : দেখার জন্য কেন এই উপযোগী হতে পারে দেখতে মধ্যে পার্থক্য ls -l /homeএবংls -dl /home
স্টিভেন ডি

ক্যারেট শেলটির জন্য বিশেষ নয়। আপনি শুধু ব্যবহার করতে পারেন ls -l / | grep ^d। আপনি যদি উদ্ধৃতি ব্যবহার করতে চলেছেন, যেহেতু আপনার প্যারামিটার সম্প্রসারণের প্রয়োজন নেই, তাই তাদের একক উদ্ধৃতি করুন। ls -l / | grep '^d'। হ্যাঁ, আমি একজন প্যাডেন্ট তবে সত্যিই, এটি করুন। :)
ওয়াইল্ডকার্ড

-1
$ ls -p | grep /

-pপতাকা করতে হবে lsপ্রতিটি ফাইলের নাম পরে একটি স্ল্যাশ ( `/ ') যোগ যদি ফাইলটি একটি ডিরেক্টরি।


-2

সবচেয়ে সহজ উপায় নিম্নলিখিত কমান্ড টাইপ করা হয়। এটি বেশিরভাগ ইউএনআইএক্স এবং লিনাক্স প্ল্যাটফর্ম এবং সংস্করণ জুড়ে কাজ করে। আপনি চাইলে আপনি এড়িয়ে যেতে -Fপারেন, তবে এটি যুক্তি যা ডিরেক্টরি নামের শেষে / যুক্ত করে। -Cবর্তমান ডিরেক্টরির মধ্যে তাদের সব - যুক্তি শুধুমাত্র ডিরেক্টরির নাম ধারন করে না। আপনি যদি বর্তমান পথে কেবল ডিরেক্টরি এবং উপ-ডিরেক্টরিগুলি দেখতে চান তবে কেবল -Rযুক্তি ( ls -CFR) যুক্ত করুন।

# ls -CF
/dir1  /dir2  /dir3  /beaches  /Work  /Other 

1
lsআমি জানি সমস্ত বাস্তবায়নে এবং এর পসিআইক্স স্পেসিফিকেশনে কলামগুলিতে আউটপুট আদান-প্রদান করা হয় ls, নন-ডিরেক্টরি ফাইলগুলি এড়িয়ে যাওয়া নয়। আপনার উদাহরণস্বরূপ, ফাইলগুলির নামের আগে মুদ্রিত হয়, যা কোনও প্রয়োগ করে না। সঙ্গে , ডিরেক্টরি ফাইলের জন্য ফাইলের নাম সংযোজন করা হয়। -C/ls-F/
স্টাফেন চেজেলাস

আমি যখন এই উত্তরটি দেখেছি, আমি ভাবলাম "এটি সত্য কোথায়?" @ স্টাফেনচাজেলাস এবং জেফ শ্যাচলার - আপনি কি স্পষ্টতই ভুল উত্তরকে কমিয়ে দেবেন না?
জি ম্যান

-3
ls -G

এটি আপনার ডিরেক্টরিগুলি নীলে দেখায়


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