ফাইল এক্সটেনশন এবং তারপরে নাম অনুসারে এলএস বাছাই কিভাবে করবেন?


44

ডিফল্টরূপে ls কমান্ডটি কেবল ফাইলের নাম অনুসারে বাছাই করে থাকে তবে আমি অন্যান্য ফাইল প্রকারের আগে ডিরেক্টরি উপস্থিত হতে চাই। আমি এমনকি উইন্ডোজ এক্সপ্লোরারকে যেভাবে কলামের ধরণ অনুসারে বাছাই করে তার মতো ফাইলগুলি এক্সটেনশান অনুসারে বাছাই করতে চাইছি। Ls এর সাথে অনুরূপ কিছু করার কোনও উপায় আছে কি?

উত্তর:


42

আমি মনে করি পুরো উত্তরটি উপরের সংমিশ্রণে আরও বেশি।

-X (later --sort=extension)কমপক্ষে FC3 সাল থেকে লিনাক্সে সমর্থন করা হয়েছে এবং এক্সটেনশনের ভিত্তিতে বাছাই করা হবে। --group-directories-firstআরও সম্প্রতি যুক্ত হয়েছিল (সম্ভবত এফসি 8 এর আশেপাশে?) তবে, দুজনের সংমিশ্রণটি কাজ করে বলে মনে হচ্ছে না (কমপক্ষে FC8- এ)।

প্রাথমিক সমস্যাটি একক একক প্রাথমিক সাজানোর কী ব্যবহার করে বলে মনে হচ্ছে। এটিতে কিছু অন্তর্দৃষ্টি করার জন্য এই মেলিং তালিকার আলোচনাটি দেখুন ।


5
আমি জানি এই পোস্টটি বরং পুরানো, তবে অন্যদের কাছে যেমন গুগল (যেমন আমি করেছি) থেকে এখানে আসছেন: উবুন্টু ১২.১০ এ আমার --sort=extensionএবং --group-directories-first(বা কেবল --group-directories) এর সংমিশ্রণটি আমার পক্ষে ভাল কাজ করে। আপনার মেশিনে শটও মূল্যবান! =)
টমাস আসচান

হ্যাঁ এবং আধুনিক লিনাক্স ডিস্ট্রোজে চেষ্টা করেছি এমন অন্য কোনও কিছুর -X / --sort=extensionসাথে সংযুক্ত করার ক্ষেত্রে সমস্যা নেই --group-directories-first। ওপি ফেডোরা কোর 8 (প্রকাশিত 2007) উল্লেখ করছে তাই এরকম কোনও সমস্যা দূরবর্তী সময়ে হওয়ার সম্ভাবনা রয়েছে।
ম্যাটসেট



13

বাশ অন, এই কাজ বাছাই করা হবে:

$ ls | rev | sort | rev

থেকে man rev:

 The rev utility copies the specified files to the standard output,
 reversing the order of characters in every line.  If no files are speci-
 fied, the standard input is read.

সুতরাং 1. এলএস আপনার আকাঙ্ক্ষিত ফ্ল্যাগের সাহায্যে এর আউটপুট দেয় 2. প্রতিটি লাইন বিপরীত হয় 3. তারপরে সেগুলি সাজানো হয় 4. এবং আবার বিপরীত হয় 5. এর মত:

  1. এটার মত:
  2. প্রতিটি লাইন বিপরীত হয়
  3. তারপর তারা বাছাই করা হয়
  4. এবং আবার বিপরীত তাই
  5. আপনার পছন্দসই পতাকা সহ ls ​​এর আউটপুট দেয়

বা, আরও নীচের মত, পয়েন্ট। এগুলি সর্বশেষ অক্ষর অনুসারে বাছাই করা থাকে, তারপরে পরবর্তী থেকে শেষের মতো ইত্যাদি All তারপরে .png ফাইলগুলি আসুন ইত্যাদি on এটি ls -l এর সাথেও কাজ করবে, কারণ এক্সটেনশনটি সাধারণত লাইনের শেষ জিনিস হয় (যদি "tmp @ -> / home / jones / tmp" এর মতো লাইন থাকে তবে লিংকগুলি তাদের লক্ষ্যগুলি অনুসরণ করে)।

$ ls | Rev | সাজানোর | Rev
 cslu1
 ls.mp2
 ls.mp3
 ls.mp4
 trees_110214-15
 চাপড়ান
 CSLU
 প্রক্সি ফর্ম.ডোক
 finannbyid
 toannbyid
 101209ssi.txt.save
 to_annotate_size
 Matas-টাইম-বাই-সপ্তাহব্যাপী integration2.rtf
 cyp3.rtf
 ডেটা-Dir-scan.perl.doc.rtf
 কোথা-r21-numid.rtf
 platypus.rtf
 স্ক্রিন শট 2011-01-21 এ 2.17.50 pm.png
 emacs মুদ্রণ সাহায্য.png
 লগ
 new_month_log
 বিশেষ
 Google এর ngram-critique.html
 perl_path.html
 nl এর
 DWE_BEN_89808.2.ann
 foo বিন্যাস
 dofoo
 100811_from_iMac_Documents_in_dock.zip
 to-palikir.zip
 tmp,
 ফাইল-পরিষ্করণ
 বার
 তথ্য-স্ক্যান-দস্তাবেজ
 CMP-মিলিগ্রাম-অ্যান-numids
 finished_numids
 to_annotate_numids
 manls.ps
 Mike_address_ticket
 cyp2.out
 cyp3.out
 সনাক্ত-cyp.out
 manls.out
 DWE_BEN_89808.2.text
 tag2.txt
 l2.txt
 Du-এইচ-d3.txt
 finished_ann_numids_110407_1714.txt
 finished_all_numids_110407_1718.txt
 ডেটা-Dir-scan.perl.doc.txt
 কোথা-r21-numid.txt
 finannid.txt
 toannid.txt
 B9-কর্মক্ষেত্র-anndiff.txt
 tag.txt
 duh.txt
 do-mail.txt
 safextn.txt
 mg3longhdr.txt
 finished_numids.txt
 41692-langnames.txt
 TimeAnnotationGuidelines.txt
 41langs.txt
 thing4-homedir-links.txt
 bnlinks.txt
 grants.txt
 মাতা-ফাইল-reports.txt
 logx.txt
 logx
 B9-কর্মক্ষেত্র-anndiff.txt ~
 bnlinks.txt ~ 

1
যদিও ডিরেক্টরিগুলি প্রথমে তালিকাভুক্ত করবে না।
কার্লএফ

এটি যদি আপনি হয়ls -F
গ্লেন জ্যাকম্যান

প্রচেষ্টার জন্য +1 ...
বারানু

পছন্দ করুন উত্তরে থাকা উচিত।
ভয়েস

এটা চমৎকার (বিশেষ করে সাথে থেকে যেতে পারি -F) যদি মাধ্যমে এটি বংশীধ্বনিতুল্য rev& sortরঙ স্ট্রিপ করা হয়নি ( -G)।
মতামত

3

যদি আপনি লিনাক্সে না থাকেন,

ls -l |sort -d -k 1.1,1.1r -k 9 |awk '{print $9}'

ডিরেক্টরিগুলি প্রথমে বাছাই করা উচিত (আমি ভুল হলে আমাকে জানাবেন)। যদিও এক্সটেনশন অনুসারে বাছাই করে না: আপনি যদি এটি করতে চান তবে আপনাকে বেতনের বিবৃতিটিকে অনেক ব্যস্ত করে তুলতে হবে ...


এটিকে শূণ্যস্থানযুক্ত নামের সাথেও কাজ করতে, আমি সম্ভবত ডাবটি sed -E -e 's/([^ ]+[ ]+){8}//'9 ম মুদ্রণের পরিবর্তে প্রথম 8 টি ক্ষেত্র আঁকতে চাইলে এমন কিছু দিয়ে জাজকে প্রতিস্থাপন করব


আসলে, আমি খুব নিশ্চিত যে এটি লিনাক্সেও কাজ করবে, তবে অন্যরা যেমন বলেছে আপনার সেখানে কিছু বিল্ট-ইন সমর্থন রয়েছে।
জ্যাক থম্পসন

1
একটি ম্যাক কাজ করে। মনে রাখবেন যে আপনি যদি এটি CLICOLORচালু করে থাকেন তবে রঙটি মুছে যাবে।
ekkanal

1
ফাঁকা জায়গা সহ ফাইলের নামগুলির জন্য ভুল ফলাফল দেবে।
গ্লেন জ্যাকম্যান

@ জিগন, আপনি ঠিক বলেছেন ... যদি এটি উদ্বেগের বিষয় হত তবে আমি সম্ভবত জাজকে কিছুটা sed -E -e 's/([^ ]+[ ]+){8}//'পরিবর্তিত করে নবম
জ্যাক থম্পসন

ls -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
nohillside


0

একটি ভাল পন্থা প্রথমে ফোল্ডারগুলি আলাদা করা হয়, তারপরে বাছাই করা ফাইলগুলি এক্সটেনশানগুলির মাধ্যমে , বাছাই করে এবং ফলাফলগুলি প্রকাশ করে:

ls -p | grep /;ls -p | grep -v / | rev | sort | rev

-1

আমি আমার .bashrc (লিনাক্স) লাইনে যুক্ত করেছি

alias lx = "ls -X"

এইভাবে আমি lx টাইপ করি এবং এটি এক্সটেনশান অনুসারে বাছাই করি।


সুতরাং প্রশ্নের উত্তরটি ব্যবহার করুন ls -X:)
অ্যান্ড্রু

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