আপনি সঠিক পথে আছেন (একটি সহজ সমাধানের জন্য, কেবল 2 বা 3 টি কমান্ড চলছে, নীচে দেখুন)। আপনার বর্তমান ডিরেক্টরিটি থেকে মুক্তি পাওয়ার *
পরিবর্তে ব্যবহার করা উচিত- ./
এবং এটি মিলিসেকেন্ডগুলি কিছুটা কাটাকে সহজতর করে, তারপরে ফলাফলটি কেবল জিএনইউ parallel
বা pipe এ নল করুন xargs
:
find * -type d | cut -c 1-10 | parallel date --date=@{} +%c
পেতে
Sat 12 Sep 2015 08:35:11 CEST
Sun 13 Sep 2015 10:50:11 CEST
Mon 14 Sep 2015 08:35:21 CEST
এবং এর আগে অফসেটটি সেকেন্ডে যুক্ত করতে যেমন আপনার উদাহরণটি ইঙ্গিত করে:
find * -type d | cut -c 1-10 | parallel 'echo "{} " $(date --date=@{} +%c)'
বা:
find * -type d | cut -c 1-10 | xargs -I{} bash -c 'echo "{} " $(date --date=@{} +%c)'
পেতে:
1442039711 Sat 12 Sep 2015 08:35:11 CEST
1442134211 Sun 13 Sep 2015 10:50:11 CEST
1442212521 Mon 14 Sep 2015 08:35:21 CEST
তবে এটি করা সহজ ³
find * -type d -printf "@%.10f\n" | date -f - +'%s %c'
যা আপনাকে আবার একই অনুরোধ করা আউটপুট দেয়।
ব্যবহারের অসুবিধাটি *
হ'ল এটির সম্প্রসারণের জন্য আপনি আপনার কমান্ডলাইন দ্বারা সীমাবদ্ধ, সুবিধাটি হ'ল আপনার ডিরেক্টরিগুলি টাইমস্ট্যাম্প মান অনুসারে বাছাই করুন। ডিরেক্টরিগুলির সংখ্যা যদি সমস্যা হিসাবে ব্যবহার হয় -mindepth 1
তবে ক্রমটি হারাবেন:
find ./ -mindepth 1 -type d -printf "@%.10f\n" | date -f - +'%s %c'
এবং sort
প্রয়োজন হলে sertোকান:
find ./ -mindepth 1 -type d -printf "@%.10f\n" | sort | date -f - +'%s %c'
¹ এটি ধরে নেয় কোনও নেস্টেড সাব-ডাইরেক্টরি নেই, যেমনটি আপনার উদাহরণ থেকে দেখা যায়। এছাড়াও আপনি ব্যবহার করতে পারেন ./ -mindepth 1
পরিবর্তে*
² এর আপনি প্রতিস্থাপন করতে পারেন parallel
সঙ্গে xargs -I{}
এটা ঠিক অধিক বাগাড়ম্বরপূর্ণ @hobbs যেমন এখানে এবং @don_crissti প্রস্তাব।
File ফাইল পড়ার ক্ষমতা ব্যবহার করার জন্য গিলসের জবাবের ভিত্তিতেdate
Fri Oct 2 05:35:28 47592
)