Ls এর মতো কমান্ড-লাইন সরঞ্জাম থেকে ফোল্ডারে যুক্ত তারিখ অনুসারে অর্ডার করা ফাইলগুলি কি আমি তালিকাভুক্ত করতে পারি?


10

আমাকে এমন একটি স্ক্রিপ্ট তৈরি করতে হবে যা ডকের ডিফল্ট ডাউনলোড ফোল্ডার হিসাবে একই ক্রমে ফাইলগুলি দেখায়, তারিখ সংযোজন দ্বারা আদেশ করা, প্রথমে নতুন। আমি বিকল্পটি খুঁজে পেতে পারে না ls

এটি করার অন্য কোনও উপায়?


এটা কোথায় প্রদর্শিত হবে ?
রব

কমান্ড লাইন! আমি একটি লাইন লিখেছি যা চালাকি করে। যেহেতু আমার বেশি খ্যাতি নেই, তাই আমি নিজের প্রশ্নের উত্তর দিতে পারি না, পরে এটি করব।
রামিরো আরাউজো

রামিরো সাইটটিতে স্বাগতম - আপনার নিজের প্রশ্নের যে কোনও সময় উত্তর দিতে সক্ষম হওয়া উচিত - তবে আপনার উত্তরটিকে "স্বীকৃত হিসাবে চিহ্নিত" করার ক্ষেত্রে আপনার জন্য একটি বিধিনিষেধ থাকবে। আপনার প্রয়োজন অনুসারে আমার উত্তর সম্পাদনা করতে নির্দ্বিধায় বা আপনি / যখন চান আপনার নিজের উত্তর সরবরাহ করুন।
bmike

উত্তর:


6

সহজ (দ্রুততর) সমাধান:

mdls -name kMDItemFSName -name kMDItemDateAdded -raw * | \
xargs -0 -I {} echo {} | \
sed 'N;s/\n/ /' | \
sort

1
হ্যাঁ, অনেক বেশি ভাল :)
রামিরো আরাউজো

এই লাইনের প্রত্যেকটি কী কী কেউ বিশদ জানাতে পারে? এছাড়াও, এই সমাধানটি টার্মিনালে স্বতন্ত্র কমান্ড লাইন (ক্রমানুসারে, একের পর এক) হিসাবে সম্পাদনা করা যেতে পারে, বা কেবল কোনও স্ক্রিপ্টের মধ্যে?
ইজে মাক

4

যুক্ত তারিখটি মেটাডেটা আইটেম হিসাবে সংরক্ষণ করা হয় kMDItemDateAddedএবং mdlsকমান্ডটি প্রতিটি ফাইলের ডেটা এটির জন্য আর্গুমেন্ট হিসাবে পাস করবে।

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

এমডিএলএস-নাম কেএমডিআইটিএমডিট যুক্ত করুন ~ / ডাউনলোডস / *

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


1
হ্যাঁ! আমি এটি পরে পেয়েছি এবং একটি সুন্দর একটি লাইনার তৈরি করেছি যা আমাকে অনেক কিছু শিখিয়েছিল :) সহায়তার জন্য ধন্যবাদ
রামিরো আরাউজো

2
আমার উত্তর সম্পাদনা করে that এক লাইনারটি আটকান - জ্ঞান ভাগ করুন!
bmike

2

ঠিক আছে, যথারীতি, প্রশ্ন লেখার পরে আমি ফাইলগুলিতে মেটাডেটা বিষয়বস্তু খনন শুরু করি এবং এটি লিখে শেষ করেছি:

ls -a | \
grep -v '^\.$\|^\.\.$' | \
xargs -I {} mdls -name kMDItemFSName -name kMDItemDateAdded {} | \
sed 'N;s/\n//' | grep -v '(null)' | \
awk '{print $3 " " $4 " " substr($0,index($0,$7))}' | \
sort -r

মূলত এটি: 1. সমস্ত ফাইলের তালিকা 2. ফিল্টার আউট। এবং .. ৩. নাম এবং তারিখ যুক্ত হবে, অন্যটির পরে একটি রেখা 4 প্রতি দুটি রেখাকে 1 লাইনকে একীভূত করে 5.. তারিখ, সময় এবং নাম 6.. এটিকে বিপরীতে সাজান (যেহেতু তারিখের সময়টি সামনে থাকে তাই এটি সাজান তারিখ সময়)

আশা করি এটি অন্য কাউকে সাহায্য করবে! :)

@ বিমিকে আসলে, সাইটটি আমার নিজের প্রশ্নের উত্তর দেওয়ার জন্য আমার সুনামের অভাবের কারণে 8 ঘন্টা পরে আমার নিজের প্রশ্নের উত্তর দেওয়ার জন্য একটি নিষেধাজ্ঞা আরোপ করেছে: ডি


ওহ, আমি কেবল স্বচ্ছতার জন্য এক লাইনারকে বিভিন্ন লাইনে ভাগ করেছি :)
রামিরো আরাউজো

1
ls -Aপরিবর্তে ব্যবহার করুন -aযাতে আপনার grep -vজন্য .এবং করতে হবে না ..
এমফিলিজ

0

মানুষ ls

 -U      Use time of file creation, instead of last modification for
         sorting (-t) or long output (-l).

1
না, আমার তারিখ যুক্ত হওয়া দরকার, তারিখ তৈরি হয়নি। ডকের ডিফল্ট ডাউনলোড ফোল্ডার হিসাবে একই
রামিরো আরাউজো

তারিখটি তৈরির তারিখের সাথে কীভাবে যুক্ত হয়?
জেসন

1
জেসন - তৈরি তারিখটি ফাইলটি তৈরি করা হয়েছিল, সুতরাং যখন সাফারি অন্য কম্পিউটার থেকে কোনও ফাইল ডাউনলোড করে, তখন এটি ডাউনলোডের জন্য স্পষ্টভাবে তৈরি করা হয়েছিল বা ডাউনলোড হওয়ার কয়েক মাস বা বছর আগে তৈরি করা যেতে পারে। যেখানে এই তথ্য OS X এর সঞ্চিত পরার উপর বিস্তারিত জানার জন্য আমার উত্তর দেখার
bmike
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.