সাব-ডিরেক্টরি সহ আপডেটের তারিখ অনুসারে ফাইলগুলি বাছাই করতে চান


17

আমি কেবলমাত্র সাব-ডিরেক্টরি সহ আপডেটের তারিখ অনুসারে ফাইলগুলি সাজিয়ে রাখতে চাই।

আমি খুঁজে পেয়েছি ls -lrtR | grep ^-। তবে আপডেটের তারিখ অনুসারে এটি সাজানো মনে হচ্ছে না।

এবং আমার এই তালিকাটি একটি ফাইলে সংরক্ষণ করতে হবে। এটা কি সম্ভব?

Apr 01 2010  InsideDoosanServiceImpl.class  // in A directory
Apr 08 2010  MainController.class  // in B directory
Apr 07 2010  RecommendController.class  // in B directory
Apr 01 2010  MainDao.class  // in B directory

মানে পুরো তালিকাটি তারিখ অনুসারে অর্ডার করা হয়নি, তবে প্রথমে ফোল্ডার দ্বারা অর্ডার করা হয়েছে, এবং তারিখ অনুসারে অর্ডার করা হয়েছে।

আমি সমস্ত উপ-ডিরেক্টরি সহ প্রথমে তারিখ অনুসারে একটি তালিকা চাই।

উত্তর:


12

আপনি ঠিক কী বলতে চেয়েছেন তা আমি নিশ্চিত নই update dates, তবে আপনি এমন -rবিকল্প ব্যবহার করছেন যা মানুষের মতে এটি ঘটে -

-r বিপরীত লেকসোগ্রাফিকাল অর্ডার বা সর্বাধিক প্রাচীন এন্ট্রিগুলি পেতে বাছাইয়ের ক্রমটিকে বিপরীত করুন (বা সর্বশেষতম ফাইলগুলি, আকার অনুসারে বাছাইয়ের সাথে একত্রিত হলে

আমি মনে করি আপনার যদি সময়ের সাথে সাথে বাছাই করা ফাইলের দরকার হয় তবে এটি আপনার পক্ষে যথেষ্ট ভাল হওয়া উচিত।

ls -lRt

যদি আপনার তালিকাভুক্ত অন্য সমস্ত জিনিসগুলির প্রয়োজন না হয় lsতবে আপনি ব্যবহার করতে পারেন -

ls -1Rt

কোনও ফাইলে ফলাফল ক্যাপচার করতে, আপনি পুনর্নির্দেশ অপারেটরটি ব্যবহার করতে পারেন >এবং একটি ফাইলের নাম দিতে পারেন । সুতরাং আপনি এর মতো কিছু করতে পারেন -

ls -lRt > sortedfile.list

হালনাগাদ:

find . -type f -exec ls -lt {} +

আমি বোঝাতে চাইছি শেষ বার কোনও ফাইল সংশোধিত হয়েছে :)

ফোল্ডার এবং তারিখ অনুসারে বাছাইয়ের ফলাফল অর্ডার করা হয়। আমি তারিখ এবং ফোল্ডার অনুসারে বাছাই করতে চাই .. এটা কি সম্ভব?

দুঃখিত, আপনি কি আমাকে কিছু আউটপুট দেখাতে পারেন? আপনি যদি ব্যবহার করেন তবে আমি ফোল্ডারের বাছাইয়ের বিষয়টি যথেষ্টভাবে অনুসরণ করি নি ls -lrt
জয়পাল সিংহ

// জয়পাল সিং, আমি আমার আউটপুটটিকে আমার কোয়েশনে আপডেট করেছি ↑ :)। আমি সত্যিই আশা করি আপনি এটি বুঝতে পেরেছেন এবং আমার খারাপ ইংরেজির জন্য দুঃখিত।

1
যদি ফাইল তালিকাটি xargsএকাধিক কল করার জন্য বাধ্যতামূলকভাবে যথেষ্ট দীর্ঘ হয় তবে এটি ব্যর্থ হয় ls, কারণ ফাইলগুলি কেবলমাত্র প্রতিটি lsঅনুরোধের মধ্যেই যথাযথভাবে বাছাই করা হয় তবে আউটপুটে একটি সুসংগত গ্লোবাল ক্রমের অভাব থাকে।
ব্র্যান্ডন রোডস

19

এলএস সহ, -আর ডিরেক্টরিগুলি পুনরাবৃত্তি করবে এবং -টি সংশোধন করে সাজবে। তবে এটি ডিরেক্টরিগুলি পুনরাবৃত্তভাবে অনুসরণ করে এবং প্রতিটি ডিরেক্টরিতে এটি প্রয়োগ করে। এটি সমস্ত ডিরেক্টরি থেকে সমস্ত ফাইল একত্রিত করে না এবং এর পরে বাছাই করে। (যতদূর আমি বুঝতে পারি, পরবর্তীটি আপনি যা চান তা হ'ল)

Gnu Find (1) এর সাহায্যে আপনি যুগের পরে এবং ফাইলের নাম থেকে সেকেন্ডের সংখ্যা অন্তর্ভুক্ত করতে আউটপুট ফর্ম্যাট নির্দিষ্ট করতে পারেন, তারপরে আপনি এটিকে সাজানোর জন্য পাইপ করতে পারেন (1)।

find . -type f -printf "%T@ %f\n" | sort -n > out.txt

হ্যাঁ GNU findসাহায্য করে। কিন্তু ওপি AIXমেশিনগুলিতে কাজ করে তাই GNU findতার কাছে এটি উপলব্ধ ছিল না।
জয়পাল সিংহ

lsবাছাইয়ের আগে ফাইলগুলি সংগ্রহ করা খুব খারাপ । lsহয় এত দ্রুত তুলনায় find
নাথান রিইনস্টেটমোনিকা আর্থার

lsএবং findএকই ডেটা পড়ে, তাই আমি কোনও কারণেই ভাবতে পারি না যে ls সন্ধানের চেয়ে যথেষ্ট দ্রুত হওয়া উচিত। আমার সিস্টেমে 5 গুণ দ্রুত (প্রায় অর্ধ মিলিয়ন ফাইল অনুসন্ধান করা)
রল্ফ রান্ডার

7
আপনি একটি সম্পূর্ণ তারিখ / সময় চাইবেন এবং কেবলমাত্র ফাইলের নাম নয় আউটপুটটির পথও সেক্ষেত্রে বিন্যাসের স্ট্রিংটি পরিবর্তন করুন: find . -type f -printf "%T@ %Tc %p\n" | sort -n > out.txtআউটপুট এন্ট্রি দেওয়ার মতো 1427913836.2330520210 wed 1 apr 2015 20:43:56 ./subdir/file.txt
কার্ল

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