ls -lপনিক্সের একটি অনিং তালিকাতে তারিখগুলি সম্পর্কে এটি বলতে হয় :
<date and time>ক্ষেত্র উপযুক্ত তারিখ এবং কখন ফাইলটি সর্বশেষ সংশোধিত হয়েছিল টাইমস্ট্যাম্প থাকিতে হইবে। পসিক্স লোকালে, ক্ষেত্রটি নিম্নলিখিত তারিখের কমান্ডের সমপরিমাণ হবে:
date "+%b %e %H:%M"
... যদি ফাইলটি গত ছয় মাসে পরিবর্তন করা হয়েছে, বা:
date "+%b %e %Y"
এটিকে বিবেচনায় রেখে, এবং নিশ্চিত করে নিন যে কোনও ফাইলনামে যদি কোনও নতুন লাইন থাকে তবে তারা সঠিকভাবে পসিক্স নির্দিষ্ট ls -qবিকল্পের সাথেও গ্লোবড হয়, এগুলি lsছাড়াই কোনও ফলাফলের জন্য একটি রেজেক্স প্রস্তুত করা তুলনামূলকভাবে সহজ find:
d=$(date "+%b %e") y=$(date --date=yesterday "+%b %e")
echo "$d" "$y"
###OUTPUT###
Jul 5 Jul 4
grepতার জন্য এবং আপনি কেবল সেই লাইনগুলিতেই ফিরে আসবেন যা আজকের বা গতকালের তারিখগুলিকে প্রতিনিধিত্ব করে স্ট্রিংগুলি ধারণ করে। নিম্নলিখিত কমান্ডটি কিছুটা যুক্ত করেছে:
ls -alRcq | sed "1H;/^-/!{/./d;N;h};/$d\|$y/!d;x;/\n/p;g"
ls বিকল্পগুলি সমন্বিত:
-a একটি ডিরেক্টরিতে সমস্ত ফাইল ফেরত দিন - এর সাথে শুরু হওয়া ফাইলগুলিও .dot
-l দীর্ঘ তালিকা
-R পুনরাবৃত্তভাবে সমস্ত শিশু ডিরেক্টরি তালিকাভুক্ত
-c অ্যাক্সেস সময়ের চেয়ে পরিবর্তনের সময় প্রদর্শন করুন
-qকোনও ফাইলনেম ?-প্রিন্টযোগ্য বা \tআব অক্ষরের পরিবর্তে শেল গ্লোব ফিরিয়ে দিন
এই ফলাফলগুলি কেবল সেই |pipeফাইলের সাথে পাস করা হয় sedযা কেবল মেলে:
- কোনও পাথের নাম এবং নিম্নলিখিত রেখার পূর্ববর্তী ফাঁকা রেখা
- লাইনগুলি
- (অন্য কথায় - dডিরেক্টরিতে নয়) দিয়ে শুরু হয় যা আপনার থাকে date।
- এটি পথের নাম লাইনগুলি মুদ্রণ করে না যদিও তাদের নামের ডিরেক্টরিটি না থাকলে প্রকৃতপক্ষে আপনি ফিল্টার করেছেন এমন ফাইলগুলি থাকে।
আউটপুটটি দেখতে এটির মতো দেখাচ্ছে:
ls -alRcq --color=always |
sed "1H;/^-/!{/./d;N;h};/$d\|$y/!d;x;/\n/p;g"
###OUTPUT###
.:
-rw------- 1 mikeserv mikeserv 2086 Jul 4 10:52 .bash_history
-rw------- 1 mikeserv mikeserv 2657 Jul 4 15:20 .lesshst
-rw-r--r-- 1 mikeserv mikeserv 681 Jul 5 05:18 .zdirs
-rw------- 1 mikeserv mikeserv 750583 Jul 5 08:28 .zsh_history
-rw-r--r-- 1 mikeserv mikeserv 166 Jul 4 23:02 Terminology.log
-rw-r--r-- 1 mikeserv mikeserv 433568 Jul 4 13:34 shot-2014-06-22_17-10-16.jpg
-rw-r--r-- 1 mikeserv mikeserv 445192 Jul 4 13:34 shot-2014-06-22_17-11-06.jpg
./.cache/efreet:
-rw------- 1 mikeserv mikeserv 37325 Jul 4 22:51 desktop_localhost_C.eet
-rw------- 1 mikeserv mikeserv 37325 Jul 4 23:30 desktop_localhost_en_US.eet
-rw------- 1 mikeserv mikeserv 24090 Jul 4 22:51 desktop_util_localhost_C.eet
-rw------- 1 mikeserv mikeserv 24090 Jul 4 23:30 desktop_util_localhost_en_US.eet
-rw------- 1 mikeserv mikeserv 16037 Jul 4 23:30 icon_themes_localhost.eet
-rw------- 1 mikeserv mikeserv 3117 Jul 4 23:30 icons___efreet_fallback_localhost.eet
-rw------- 1 mikeserv mikeserv 768039 Jul 4 23:30 icons_gnome_localhost.eet
-rw------- 1 mikeserv mikeserv 18589 Jul 4 23:30 icons_hicolor_localhost.eet
./.config:
-rw-r--r-- 1 mikeserv mikeserv 30 Jul 4 19:10 pavucontrol.ini
./.config/chrome:
-rw-r--r-- 1 mikeserv mikeserv 94332179 Jul 4 13:36 conf.tar.lz4.bak
হ্যাঁ, এটি এর সাথেও কাজ করে LS_COLORS- এটি সম্ভবত আপনার cronঅবশ্যই কম অগ্রাধিকার , তবে, আরে আপনার বিকল্পগুলি খোলা আছে।
যে কোনও ক্ষেত্রে এটি কিছু অন্যান্য সম্ভাব্য সমাধানগুলির চেয়ে কিছু গুরুত্বপূর্ণ সুবিধা দেয় offers
প্রথম স্থানে find+ lsএকাধিক অনুরোধ জড়িত - lsএটিতে কেবল একটি একক প্রক্রিয়া জড়িত , এবং এ কারণেই এটি নির্ভরযোগ্যভাবে সমস্ত কিছু সাজিয়ে নিতে সক্ষম - যা এটি ডিফল্টরূপে করে - এবং তাই sortএটি আনুষঙ্গিকও করা হয়।
কোনো সমাধান জড়িত findএবং sortএবং lsপ্রায় কাছাকাছি করছে সব দুইবার কাজ। lsএবং findউভয়ই প্রতিটি পথের নাম এবং statপ্রতিটি ফাইল সমাধান করবে । lsএবং sortউভয়ই ফলাফলের সকলকে বাছাই করবে। কেবল এককটি ব্যবহার করার পরিবর্তে এটি সম্ভবত সেরা ls।
তারপরে অবশ্যই এই উত্তরের অংশ dateএবং sedঅংশ রয়েছে। এ সম্পর্কে কী লক্ষণীয় তা গুরুত্বপূর্ণ যে আপনি কঠোর অংশটি করছেন এবং প্রথমে রেজেনেক্স পান - এবং শুধুমাত্র একবার - এবং পরে আপনি কেবল ফলাফলের একক তালিকায় ছাঁটাই করেন, ফলাফল পান, ফলাফল পান, ফলাফলগুলি সাজান এবং ফলাফলগুলি সাজান।
এটি নতুন লাইনযুক্ত ফাইলের নামগুলি ভাঙবে না, কারণ অন্যান্য সমাধান সম্ভবত এটি করবে। এই সমাধানটির নিজস্ব ক্যাভেট রয়েছে - যা আমি পরবর্তীটি ব্যাখ্যা করি - তবে সেগুলি মিনিট এবং সহজেই পরিচালনা করা হয়। আমার মতে, এটি এখানে সবচেয়ে শক্তিশালী সমাধান।
দুটি ক্ষেত্রে রয়েছে যে উপরের কমান্ডটি আপনাকে সমস্যার কারণ হতে পারে। প্রথমটি ?ফাইলের নামগুলিতে গ্লোবগুলিকে জড়িত - যেমনটি এখানে ইতিমধ্যে দেওয়া অন্য যে কোনও তুলনায় এটি ইতিমধ্যে আরও দৃ rob় সমাধান এবং আপনি যেটির মুখোমুখি হবেন সম্ভবত ?তার পক্ষে এটি যথেষ্ট কম, এই গ্লোবগুলি সমাধান করার সম্ভাবনা রয়েছে একাধিক ফাইলের সাথে মিল থাকতে পারে। দয়া করে দেখুন এই এই বিষয় সম্পর্কে আরও তথ্যের জন্য।
অন্য সম্ভাবনাটিতে একটি মিথ্যা ধনাত্মক জড়িত - উদাহরণস্বরূপ যদি আপনার কাছে যদি কোনও ফাইলের নাম থাকে তবে dateআমরা সেই স্ট্রিংয়ের সাথে মিল রাখি যার জন্য আমরা অনুসন্ধান করছি grepতবে সেই দিনগুলির কোনওটিতেই আসলে এটি সংশোধন করা হয়নি। আমি এটি একটি সমস্যা হিসাবে গণ্য করছি না, তবে এটি যদি হয় তবে এটি সম্পর্কে জিজ্ঞাসা করুন এবং এটি পরিচালনা করতে আমি সম্ভবত আপনাকে পুনরায়তকে আরও নির্দিষ্ট করে তুলতে সহায়তা করতে পারি।
ls -ls **/*(.)