উত্তর:
শুধুমাত্র পরিবর্তনের সময় জন্য
if test `find "text.txt" -mmin +120`
then
echo old enough
fi
আপনি -cminপরিবর্তন বা -aminঅ্যাক্সেস সময়ের জন্য ব্যবহার করতে পারেন । অন্যরা নির্দেশিত হিসাবে আমি মনে করি না আপনি তৈরির সময় ট্র্যাক করতে পারবেন।
findকোনও ম্যাচ না পাওয়া গেলে শূন্য-অন ফিরে এসেছে।
text.txtএকটি ডিরেক্টরি না হিসাবে অনুমান করা হয়।
[ "$(find path/to/file -mmin +120)" ] && echo "it is old"
আমি সর্বদা date -r /the/file +%sএর বয়স খুঁজে পেতে ব্যবহার পছন্দ করি ।
আপনি touch --date '2015-10-10 9:55' /tmp/fileএকটি স্বেচ্ছাসেবী তারিখ / সময় অত্যন্ত সূক্ষ্ম সময় পেতে করতে পারেন ।
let AGE=$(($(date +%s)-$(date -r /path/to/file +%s))) [ভাবনাটি হলো এই যে নির্মিত এবং কখনও পরিবর্তন, বা "গেলিক ভাষার বয়স আপেক্ষিক" সঙ্গে]
function file-age { FILE_CREATED_TIME=`date -r "$1" +%s`; TIME_NOW=`date +%s`; echo "$[ ${TIME_NOW} - ${FILE_CREATED_TIME} ]"; }
$[ ], যদি না অবচিত অন্তত পুরানো এবং কম পোর্টেবল , এবং ব্যবহার করা উচিত $(( ))পরিবর্তে; এবং ব্যাককোটগুলি এর চেয়ে ভঙ্গুর $( ); এবং ফাংশন নামের হাইফেনগুলি সম্পূর্ণ পোর্টেবল নাও হতে পারে। এর সারমর্মটি ভালো, যদিও!
ব্যবহার statআউট ফাইলের শেষ পরিবর্তনের তারিখ জিনিসটা dateবর্তমান সময় ও bashisms একটি উদার ব্যবহার জিনিসটা, এক পরীক্ষা আপনি ফাইল এর শেষ পরিবর্তন সময়ের উপর ভিত্তি করে চান করতে পারেন 1 ।
if [ "$(( $(date +"%s") - $(stat -c "%Y" $somefile) ))" -gt "7200" ]; then
echo "$somefile is older then 2 hours"
fi
কোডটি তখন কিছুটা কম পঠনযোগ্য তবে findএ্যাপ্রোচটি, আমি মনে করি এটি findইতিমধ্যে "সন্ধান পেয়েছে" এমন কোনও ফাইল দেখার জন্য এটির আরও ভাল পদ্ধতি । এছাড়াও, তারিখ ম্যানিপুলেশন মজাদার ;-)
%Zপরিবর্তে ব্যবহার করুন %Yযা আপনি যা চান তা হতে পারে।[হালনাগাদ]
ম্যাক ব্যবহারকারীদের জন্য stat -f "%m" $somefileউপরের লিনাক্সের নির্দিষ্ট সিনট্যাক্সের পরিবর্তে ব্যবহার করুন
statঅন্তর্নির্মিত নয় - আমার খুব খারাপ, আমি ঠিক করব।
সৃষ্টির সময় সঞ্চিত নয়।
যা সংরক্ষণ করা হয় তা তিনটি টাইমস্ট্যাম্প (সাধারণত, সেগুলি নির্দিষ্ট ফাইল সিস্টেমগুলিতে বা নির্দিষ্ট ফাইল-সিস্টেম অপশন দ্বারা বন্ধ করা যেতে পারে):
ফাইলটিতে একটি "পরিবর্তন" অনুমতি পরিবর্তন, পুনর্নবীকরণ ইত্যাদি হিসাবে গণ্য করা হয়, যদিও পরিবর্তনটি কেবলমাত্র বিষয়বস্তু।
যদিও সিটিটাইম প্রযুক্তিগতভাবে সৃষ্টির সময় নয় , এটি প্রায়শই হয়।
যেহেতু সিটিটাইম এটি ফাইলের বিষয়বস্তুগুলির পরিবর্তনের দ্বারা প্রভাবিত হয় না, সাধারণত ফাইলটি তৈরি করা হয় তখন এটি আপডেট হয়। এবং হ্যাঁ - আমি আপনাকে সমস্ত চিৎকার শুনতে পাচ্ছি - আপনি অ্যাক্সেসের অনুমতি বা মালিকানা পরিবর্তন করলে এটিও আপডেট হয় ... তবে সাধারণত এটি এমন কিছু হয় যা সাধারণত একবারে আপনি সেখানে ফাইলটি রেখে দেন once
ব্যক্তিগতভাবে আমি সর্বদা সব কিছুর জন্য এমটাইম ব্যবহার করি এবং আমি কল্পনা করি এটি আপনি চান। তবে যাইহোক ... এখানে গাসের "আনট্রেসিটিভ" বাশটির পুনরায় সামঞ্জস্য করা হয়েছে, সহজে ব্যবহারের ফাংশনে।
#! / বিন / ব্যাশ
ফাংশন বয়স () {
স্থানীয় ফাইলের নাম = $ 1
স্থানীয় পরিবর্তিত = `স্ট্যাটিক -c% Y" $ ফাইলের নাম "` `
স্থানীয় এখন = `তারিখ +% s``
স্থানীয় বিলম্বিত
কেটে গেছে = এখন-পরিবর্তিত
প্রতিধ্বনিত হয়েছে $
}
ফাইল = "/"
প্রতিধ্বনি $ ফাইলের বয়স $ (বয়স "$ ফাইল") সেকেন্ড।
local changed=$(perl -MFile::stat -e "print stat(\"${filename}\")->mtime") superuser.com/questions/427551/...
chmod, ফাইলটিতে প্রয়োগ করা হয়েছে, সেই ধারণাটি বাতিল করে দেবে। কিন্তু আমি সঙ্গে বসবাস করতে পারেন আপনি যে কি করছেন ;-)
+%sদ্বিতীয়ার্ধ থেকে মিস করছেন
age() { echo $(( $(date +%s) - $(date -r "$1" +%s) )); } (সংশোধনের জন্য @Grizly ধন্যবাদ!)
noatimeভাল যা বিকল্প ফাইলের সাথে মাউন্ট করা সমস্ত ফাইল সিস্টেমে তৈরির সময় (যা পারফরম্যান্সের জন্য ভাল তাই এটি ব্যবহার করা উচিত)। সুতরাং কেবল %Xপরিবর্তে ব্যবহার করুন %Y।
এটির সন্ধানটি ভাল তবে আমি মনে করি আপনি অন্যভাবেই ব্যবহার করতে পারবেন, বিশেষত আপনার এখন ফাইল সেকেন্ডটি কত সেকেন্ডের দরকার
date -d "now - $( stat -c "%Y" $filename ) seconds" +%s
জিএনইউ তারিখ ব্যবহার করে
সরঞ্জাম 'স্ট্যাট' এর ফলাফল বিবেচনা করুন:
File: `infolog.txt'
Size: 694 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 11635578 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ fdr) Gid: ( 1000/ fdr)
Access: 2009-01-01 22:04:15.000000000 -0800
Modify: 2009-01-01 22:05:05.000000000 -0800
Change: 2009-01-01 22:05:05.000000000 -0800
আপনি অ্যাক্সেস / পরিবর্তন / পরিবর্তনের জন্য তিনটি তারিখ এখানে দেখতে পাবেন। কোনও তৈরি তারিখ নেই। আপনি কেবল তখনই নিশ্চিত হতে পারেন যখন ফাইলের বিষয়বস্তুগুলি সংশোধন করা হয়েছিল ("পরিবর্তিত" ক্ষেত্র) বা এর ইনোড পরিবর্তিত হয়েছিল ("পরিবর্তন" ক্ষেত্র)।
উভয় ক্ষেত্র আপডেট হওয়ার উদাহরণ:
যদি কেউ ফাইলের শেষে অতিরিক্ত তথ্য সম্মত করে তবে "সংশোধন" আপডেট করা হবে।
কেউ যদি chmod এর মাধ্যমে অনুমতি পরিবর্তন করে তবে "পরিবর্তন" আপডেট করা হবে।