আমি কীভাবে একটি ডিরেক্টরিতে সর্বশেষ 5 টি পরিবর্তিত ফাইলের তালিকা (এলএস) করব?


138

আমি জানি ls -tযে সমস্ত ফাইল সংশোধিত সময়ের সাথে তালিকাভুক্ত করবে। তবে আমি কীভাবে এই ফলাফলগুলি কেবলমাত্র শেষ এন ফাইলগুলিতে সীমাবদ্ধ করতে পারি ?


10
অর্ডার বিপরীত ls -lrtকারো সাহায্য করতে পারে।
পিজে ব্রুনেট

@PJBrunet এটি পছন্দ করুন। আমি সর্বদা ls'ing এর অভ্যাসটি গঠন করেছি tharlকারণ এটি আমার প্রয়োজনীয় সমস্ত কিছুকে ঝোঁক করে।
অ্যাডাম গ্রান্ট

উত্তর:


246

মাথা বা লেজ ব্যবহার করার চেষ্টা করুন। আপনি যদি 5 টি সর্বাধিক সংশোধিত ফাইলগুলি চান:

ls -1t | head -5

-1 (এটি একটি) প্রতিটি লাইনে একটি ফাইল বলে এবং প্রধান বলে প্রথম 5 টি প্রবেশিকা নিন।

আপনি চাইলে শেষ 5 টি চেষ্টা করুন

ls -1t | tail -5

2
যদি আমি ভুল না হয়ে থাকি তবে শেলটি lsএকাধিক কলামে আউটপুট উপস্থাপন করে তবে আউটপুটটি lsএকবারে 1 ফাইল / ডির দিয়ে নিম্নলিখিত কমান্ডে পাইপ করা হয়
অ্যালেক্স

যে বিষয়টি মনে হয় না। সুন্দর সরলকরণ।
পল রুবেল

3
এটি শীর্ষে মোট উপেক্ষা করে:ls -1t | head -n 6 | tail -n 5
রায়ান

1
আমি মোট দেখতে পাচ্ছি না, তবে যদি এমন একটি থাকে যা অবশ্যই কাজ করবে।
পল রুবেল

18

গৃহীত উত্তরটি কেবলমাত্র ফাইলের নাম তালিকাভুক্ত করে তবে শীর্ষ 5 টি ফাইল পেতে যে কোনওটি ব্যবহার করতে পারেন:

ls -lht | head -6

কোথায়:

-l একটি তালিকা বিন্যাসে আউটপুট

-h আউটপুট মানুষের পঠনযোগ্য করে তোলে (যেমন ফাইল আকারগুলি কেবি, এমবি ইত্যাদিতে প্রদর্শিত হয়)

-t প্রথমে অতি সম্প্রতি পরিবর্তিত ফাইল রেখে আউটপুট সাজান

head -6lsআউটপুট প্রথম লাইনে ব্লক আকার মুদ্রণ কারণ 5 টি ফাইল প্রদর্শিত হবে ।

আমি মনে করি এটি কিছুটা মার্জিত এবং সম্ভবত আরও কার্যকর পদ্ধতির।

উদাহরণ আউটপুট:

total 26960312 -rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py -rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf -rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf -rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf -rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv


12

tailকমান্ড ব্যবহার করুন :

ls -t | tail -n 5

এটি 5 পুরানো দেয়। 5 টি নতুন পাওয়ার জন্য আপনার বাছাই করতে হবে ( ls -tr) বা তার headপরিবর্তে ব্যবহার করুন tail
হেডব্যাঙ্ক

2

ডিফল্টরূপে ls -tআউটপুটকে নতুন থেকে পুরানো পর্যন্ত সাজান, সুতরাং কমান্ডের ব্যবহারের সংমিশ্রণটি নির্ভর করে যে আপনি আপনার আউটপুটটি অর্ডার করতে চান তা নির্ভর করে।

সর্বাধিক প্রাচীনতমগুলিতে অর্ডার করা নতুন 5 টি ফাইলের জন্য, headপ্রথম 5 লাইন আউটপুট নেওয়ার জন্য ব্যবহার করুন :

ls -t | head -n 5

সর্বাধিক নতুন থেকে অর্ডার করা নতুন 5 টি ফাইলের জন্য, -rস্যুইচ lsক্রমের বিপরীতে স্যুইচটি ব্যবহার করুন , এবং tailশেষ 5 লাইন আউটপুট নেওয়ার জন্য ব্যবহার করুন :

ls -tr | tail -n 5

1

ls -tতৈরির সময় ফাইলগুলির তালিকা শেষবারের মতো পরিবর্তিত সময় নয়। ls -ltcআপনি সর্বশেষ থেকে প্রথম থেকে প্রথম পর্যন্ত (শীর্ষে থেকে নীচে) সর্বশেষ সংশোধিত সময়ের মাধ্যমে ফাইলগুলি তালিকা করতে চান তবে ব্যবহার করুন । এইভাবে শেষ এন তালিকাভুক্ত:ls -ltc | head ${n}


1
আপনি কোন প্ল্যাটফর্ম / সংস্করণ উল্লেখ করেন? তুমি কি একটি লিংক সরবরাহ করতে পার? লিনাক্সের ম্যান-পৃষ্ঠার দিকে তাকালে আপনি যা বলেছিলেন তার বিপরীতে ফল পাওয়া যায়: -t sort by modification time, newest first
জোমা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.