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


20

আমি যখন lsবিকল্পটি দিয়ে কমান্ডটি ব্যবহার করি -l, তখন প্রথম অক্ষরের অক্ষর প্রতিটি ফাইল সম্পর্কে তথ্য দেয় এবং এই স্ট্রিংয়ের প্রথম অক্ষরটি ফাইলটির ধরণ দেয়। ( d= ডিরেক্টরি, -= স্ট্যান্ডার্ড ফাইল, l= লিঙ্ক, ইত্যাদি)

আমি প্রথম অক্ষর অনুসারে ফাইলগুলি কীভাবে ফিল্টার করব?


2
আপনি যা চাইবেন তা ভাবুন: superuser.com/a/109542
ডিভনল

উত্তর:


9

আপনি ডিরেক্টরিগুলি ছাড়াও সমস্ত কিছু ফিল্টার আউট করতে পারেন grepএইভাবে:

ls -l | grep '^d'

^ইঙ্গিত করে যে প্যাটার্ন লাইনের শুরুতে হয়। প্রতিস্থাপন dসঙ্গে -, lযেমন প্রযোজ্য, ইত্যাদি।

আপনি অবশ্যই নির্দিষ্ট প্রকারের জন্য সরাসরি অনুসন্ধান করতে অন্যান্য কমান্ডগুলি ব্যবহার করতে পারেন (উদাঃ find . -maxdepth 1 -type d) বা ls -l | sortএই প্রথম অক্ষরের উপর ভিত্তি করে একই ধরণের গ্রুপের জন্য ব্যবহার করতে পারেন, তবে আপনি যদি ফিল্টার করতে চান তবে আপনাকে grepকেবল আউটপুট থেকে উপযুক্ত লাইনগুলি বেছে নিতে ব্যবহার করতে হবে।


মনে রাখবেন যে সিমলিংকগুলি থাকলে আপনি ব্যবহার করতে পারেন ls -lL-Lএটি ডিরেক্টরি বা কোনও ফাইলের সাথে লিঙ্কযুক্ত কিনা তা দেখানোর জন্য প্রতিলিঙ্কগুলি অনুসরণ করবে।
Nux

8

আপনি যদি সমস্ত আউটপুট প্রদর্শন করতে চান তবে একই ধরণের ফাইলগুলি একসাথে তালিকাভুক্ত করতে চান তবে আপনি প্রতিটি লাইনের প্রথম অক্ষরে আউটপুটটিকে বাছাই করতে পারেন:

ls -l | sort -k1,1

ডাউনভোটের কোনও কারণ?
জোসেফ আর।

1
সম্ভবত কারণে টেক্সট প্রসেসিং রুটিন ব্যবহার করার, প্লেইন টেক্সট ম্যানিপুলেশন "ফালতু ধ্যান" বা মাঝে "ভুল" হিসেবে প্রমাণিত হয় নির্দিষ্ট ডেভেলপারদের ধরনের (যেমন আমার সহকর্মীরা অধিকাংশ যেমন ...)। একটি সহজ এবং সঠিক উত্তরের জন্য একটি upvote দেওয়া।
কে কে কোয়ান

8

কমান্ড lsসঙ্গে আচরণ করা হয় ফাইলের নাম , যা ডিরেক্টরি ডাটা স্ট্রাকচার রেকর্ড করা হয়। সুতরাং এটি কোনও ফাইলের "ধরণ" সহ নিজেই ফাইলটির বিষয়ে চিন্তা করে না।

একটি কমান্ড যে আরো অনেক কিছুতে কাজ করার জন্য উপযুক্ত হয় প্রকৃত ফাইলগুলি না শুধুমাত্র এটা নাম, হয় find। এটিতে একটি বিকল্প রয়েছে যা ফাইল টাইপের তালিকায় কীভাবে তালিকা ফিল্টার করতে পারে সে সম্পর্কে আপনার প্রশ্নের সরাসরি উত্তর দেয়।

এটি বর্তমান ডিরেক্টরিটির অনুরূপ একটি তালিকা দেয় ls -l:

find . -maxdepth 1 -ls

ডিফল্টরূপে findডিরেক্টরিগুলি পুনরাবৃত্তভাবে তালিকাবদ্ধ করে, যা অনুসন্ধানের গভীরতা 1 এ সীমাবদ্ধ করে অক্ষম করা আছে
You আপনি এটি ছেড়ে দিতে পারেন ., তবে বিকল্পগুলির আগে ডিরেক্টরিগুলি তালিকাভুক্ত করা দরকার তা দেখানোর জন্য আমি এটি অন্তর্ভুক্ত করেছি।

সঙ্গে -type, আপনি ফাইল প্রকার, যা প্রকাশ করা হয় দ্বারা ফিল্টার করতে পারেন fবা dপ্লেইন ফাইল বা ডিরেক্টরি জন্য:

find . -maxdepth 1 -type d -ls

-typeবিশেষত lপ্রতীকী লিঙ্কগুলির জন্য অন্যান্য ফিল্টার মান রয়েছে।
লক্ষ করুন যে সিমলিংকগুলির মধ্যে একটি জটিলতা
রয়েছে : এই ক্ষেত্রে দুটি ধরণের ফাইল রয়েছে: lএটি একটি সিমিলিংক এবং এর fসাথে লিঙ্কযুক্ত ফাইলের ধরণের ইঙ্গিত দেয়। কীভাবে এটি পরিচালনা করতে হবে তা নির্দিষ্ট করার জন্য অপশন রয়েছে, যাতে আপনি চয়ন করতে পারেন।


থেকে man find:

    -type c
           File is of type c:

           b      block (buffered) special

           c      character (unbuffered) special

           d      directory

           p      named pipe (FIFO)

           f      regular file

           l      symbolic link; this is never true if the  -L  option
                  or  the -follow option is in effect, unless the sym‐
                  bolic link is broken.  If you  want  to  search  for
                  symbolic links when -L is in effect, use -xtype.

           s      socket

           D      door (Solaris)

এবং প্রতীকী লিঙ্কগুলি পরিচালনা করার ক্ষেত্রে প্রাসঙ্গিক:

    -xtype c
           The  same as -type unless the file is a symbolic link.  For
           symbolic links: if the -H or -P option was specified,  true
           if the file is a link to a file of type c; if the -L option
           has been given, true if c is `l'.  In other words, for sym‐
           bolic  links, -xtype checks the type of the file that -type
           does not check.

এবং

    -P     Never follow symbolic links.  This is  the  default  behav‐
           iour.  When find examines or prints information a file, and
           the file is a symbolic link, the information used shall  be
           taken from the properties of the symbolic link itself.


    -L     Follow symbolic links.  When find examines or prints infor‐
           mation about files, the information  used  shall  be  taken
           from  the  properties of the file to which the link points,
           not from the link itself (unless it is  a  broken  symbolic
           link  or  find  is  unable to examine the file to which the
           link points).  Use of this option implies -noleaf.  If  you
           later  use  the -P option, -noleaf will still be in effect.
           If -L is in effect and find discovers a symbolic link to  a
           subdirectory during its search, the subdirectory pointed to
           by the symbolic link will be searched.

           When the -L option is in effect, the -type  predicate  will
           always  match  against the type of the file that a symbolic
           link points to rather than the link itself (unless the sym‐
           bolic  link  is  broken).   Using  -L causes the -lname and
           -ilname predicates always to return false.


    -H     Do not follow symbolic links, except while  processing  the
           command  line  arguments. [...]

2

আপনি যদি অন্য ফাইল প্রকার থেকে ফোল্ডারগুলি অর্ডার করার বিষয়ে সবচেয়ে উদ্বিগ্ন হন তবে আপনি যেতে পারেন with

ls --group-directories-first

অন্যথায়, আমি মনে করি আপনাকে অ্যান্থনের উত্তর অনুসারে বাছাইয়ের মাধ্যমে বা গ্রেপের মাধ্যমে এলএস-এল থেকে আউটপুটটি পাইপ করতে হবে


2
ls -l | awk '/^d/{print $NF}

ডাব্লু দিয়ে শুরু করা সমস্ত কী কী হবে? যেমন ডি ডিরেক্টরি হিসাবে হয় এবং ডিরেক্টরি নাম তালিকাতে আপনার সর্বশেষ ক্ষেত্রটি প্রিন্ট করতে হবে


1
ls -l | sort 

এটি প্রতিটি ফলাফলের বর্ণানুক্রমিক ক্রম অনুসারে ফলাফলকে সাজান। প্রথম চরিত্রটি যদি আপনি চান সেই মানদণ্ড হয়, এটিই। আপনার যদি কেবল ফাইলের নাম প্রয়োজন হয় তবে আপনি চেষ্টা করতে পারেন:

ls -l | sort | cut -f 2 -d ' ' 

বা অনুরূপ কিছু (যে কমান্ডটি বাছাই করে এবং তারপরে স্পেস ডিলিমিটার ব্যবহার করে প্রতিটি লাইন বিভাজন করে, তারপরে দ্বিতীয় গ্রুপটি দেয়।


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