সংমিশ্রণ find
এবং ls
জন্য ভাল কাজ করে
- নতুন লাইন ছাড়া ফাইলের নাম
- খুব বড় পরিমাণে ফাইল নয়
- খুব দীর্ঘ ফাইলের নাম নয়
সমাধান:
find . -name "my-pattern" -print0 |
xargs -r -0 ls -1 -t |
head -1
আসুন এটি ভেঙে দিন:
এর সাথে find
আমরা এর মতো সমস্ত আকর্ষণীয় ফাইল মেলাতে পারি:
find . -name "my-pattern" ...
তারপরে ব্যবহার করে -print0
আমরা সমস্ত ফাইলের নাম নিরাপদে ls
এটিকে দিতে পারি:
find . -name "my-pattern" -print0 | xargs -r -0 ls -1 -t
অতিরিক্ত find
অনুসন্ধান পরামিতি এবং নিদর্শন এখানে যুক্ত করা যেতে পারে
find . -name "my-pattern" ... -print0 | xargs -r -0 ls -1 -t
ls -t
সংশোধন সময় (নতুনতম) দ্বারা ফাইলগুলি বাছাই করে এবং এটি একটি লাইনে মুদ্রণ করবে। আপনি -c
তৈরির সময় অনুসারে বাছাই করতে ব্যবহার করতে পারেন। দ্রষ্টব্য : এটি নতুনলাইনযুক্ত ফাইলের নামগুলির সাথে ভেঙে যাবে।
পরিশেষে head -1
আমাদের সাজানো তালিকার প্রথম ফাইলটি পায়।
দ্রষ্টব্য: xargs
আর্গুমেন্ট তালিকার আকারে সিস্টেম সীমা ব্যবহার করুন। যদি এই আকারটি অতিক্রম করে তবে একাধিকবার xargs
কল করবে ls
। এটি বাছাই এবং সম্ভবত চূড়ান্ত আউটপুট ভঙ্গ করবে। চালান
xargs --show-limits
আপনার সিস্টেমে সীমাবদ্ধতা পরীক্ষা করতে to
নোট 2:find . -maxdepth 1 -name "my-pattern" -print0
আপনি সাবফোল্ডারগুলির মাধ্যমে ফাইলগুলি অনুসন্ধান করতে না চাইলে ব্যবহার করুন ।
নোট 3: @ স্টারফ্রাই দ্বারা নির্দেশিত হিসাবে - -r
আর্গুমেন্টের xargs
কলটি রোধ করা হচ্ছে ls -1 -t
, যদি কোনও ফাইলের সাথে মেলে না find
। মিষ্টি জন্য আপনাকে ধন্যবাদ।