উত্তর:
এটি "খোলার" দ্বারা আপনি ঠিক কী বোঝাতে চান তার উপর নির্ভর করে, তবে সাধারণভাবে, হ্যাঁ। সাধারণত তিনটি টাইমস্ট্যাম্প রেকর্ড করা হয়:
mtime
- ফাইলের বিষয়বস্তু পরিবর্তিত হলে আপডেট। এটি বেশিরভাগ ক্ষেত্রে "ডিফল্ট" ফাইল সময়।ctime
- ফাইল বা এর মেটাডেটা (মালিক, অনুমতি) পরিবর্তিত হলে আপডেট হয়atime
- ফাইলটি পড়ার পরে আপডেট করা হয়েছেসুতরাং, সাধারণত, আপনি যা দেখতে চান তা হ'ল atime
একটি ফাইল। আপনি এটি সাথে stat
বা সাথে পেতে পারেন ls
। আপনি এটি করতে ব্যবহার করতে পারেন ls -lu
, যদিও আমি ব্যবহার করতে পছন্দ করি ls -l --time=atime
(যা প্রায় সমস্ত আধুনিক লিনাক্স বিতরণে সমর্থন করা উচিত) কারণ আমি এটি প্রায়শই ব্যবহার করি না এবং যখন করি তখন আমি এটি আরও ভালভাবে মনে করতে পারি। এবং সময় অনুসারে বাছাই করতে , -t
পতাকাটিকে ls এ যুক্ত করুন। সুতরাং আপনি সেখানে যান।
যদিও একটি বড় সাবধানবাণী রয়েছে। প্রতিবার কোনও ফাইল পড়ার সময়টি আপডেট করার ফলে সমস্ত কিছু ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে বেড়ে যায় I সুতরাং, বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনগুলি এখন noatime
ফাইল সিস্টেম মাউন্ট অপশনে ডিফল্ট হয়ে যায় , যা মূলত সময়কে মেরে ফেলেছে বা অন্যথায় relatime
, যা কেবল একবারে সীমা অতিক্রম করার পরে আপডেট হয় (সাধারণত প্রতিদিন একবার) বা যদি ফাইলটি পূর্ববর্তী পাঠের পরে পরিবর্তিত হয়েছিল। mount
কমান্ডটি চালিয়ে এই বিকল্পগুলি সক্রিয় রয়েছে কিনা তা আপনি আবিষ্কার করতে পারেন ।
এছাড়াও, নোট করুন যে অ্যাক্সেসের সময়গুলি ইনোড দ্বারা হয়, ফাইলের নাম দ্বারা নয়, সুতরাং আপনার যদি হার্ডলিঙ্ক থাকে তবে একটির কাছ থেকে পড়া একই ফাইলটিকে উল্লেখ করা সমস্ত নাম আপডেট করবে।
এবং, সচেতন হন যে গ "সৃষ্টি" নয়; ইউনিক্স / লিনাক্স ফাইল সিস্টেমগুলি দ্বারা সৃষ্টিটি ট্র্যাক করা হয়নি, যা অদ্ভুত বলে মনে হয় তবে এটি প্রকৃত অর্থে বোঝায় কারণ ফাইল সিস্টেমটি এটি আসল কিনা তা জানার কোনও উপায় নেই - সম্ভবত চল্লিশ বছর আগে ফাইলটি তৈরি হয়েছিল এবং এখানে অনুলিপি করা হয়েছিল। এবং, প্রকৃতপক্ষে, অনেক ফাইল সম্পাদক মূলটির অনুলিপি তৈরি করে কাজ করে work আপনার যদি সেই তথ্য দরকার হয় তবে এর মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করা ভাল git
।
mount
ম্যানপেজটি দেখুন।
ls
একটি সংজ্ঞায়িত নির্ভুলতার জন্য সময়কে ডিফল্টভাবে সংক্ষিপ্ত করে তোলে। সময়টি সম্পূর্ণ নির্ভুলতার সাথে দেখতে ব্যবহার করতে পারেন --full-time
।
যদি আপনার তালিকাটি মানুষের ব্যবহারের জন্য ls
হয় তবে একটি তারিখ বাছাই পতাকা -tu
ব্যবহারের জন্য (অ্যাক্সেসের জন্য (পড়ার) সময়, কেবল -t
পরিবর্তন (লেখার জন্য) সময় বা -tc
ইনোড পরিবর্তনের সময় ব্যবহার করুন। দেখুন mattdm এর উত্তর (বিশেষ করে সতর্কীকরণ সংক্রান্ত আরো তথ্যের জন্য -a
এবং সংজ্ঞা -c
)।
এটি যদি প্রোগ্রাম ব্যবহারের জন্য হয় তবে এর আউটপুট পার্স ls
করা সমস্যাযুক্ত । আপনার শেলটি যদি zsh হয় তবে আপনার আর প্রয়োজন নেই ls
: অ্যাক্সেস ( *(Oa)
), ইনোড পরিবর্তন ( *(Oc)
) বা পরিবর্তন ( *(Om)
) সময় বাড়িয়ে ম্যাচগুলিকে বাছাই করতে zsh এর গ্লোবিং বাছাইপর্ব রয়েছে । একটি ছোট হাত o
বয়সের দ্বারা বাছাই।
act_on_files_by_date *(Om)
অন্যথায়, আপনি যদি জানেন যে ফাইলের নামগুলিতে কোনও নতুন লাইন বা প্রিন্টযোগ্য অক্ষর নেই (বর্তমান লোকালে), তবে আপনি এর মতো কিছু করতে পারেন
ls -t | while read -r name; do act_on_one_file "$name"; done
ls -t | xargs -I {} act_on_one_file {}
আপনি যদি একবারে অনেকগুলি ফাইলে একটি কমান্ড চাওয়াতে চান তবে আপনার আরও সেটআপ প্রয়োজন। দ্রষ্টব্য যে act_on_files_by_date $(ls -t)
ঠিক এর মতো কাজ করে না, কারণ ওয়াইল্ডকার্ড অক্ষর বা সাদা স্থান যুক্ত ফাইলের নামগুলি কমান্ড প্রতিস্থাপনের ফলে প্রসারিত হবে। নিম্নলিখিত ফাইলটি যতক্ষণ কাজ করে না যতক্ষণ না কোনও ফাইলনামে একটি নতুন লাইন বা কোনও মুদ্রণযোগ্য অক্ষর থাকে না:
IFS='
'
set -f
act_on_files_by_date $(ls -t)
set +f
unset IFS
আপনি যদি স্বেচ্ছাসেবী ফাইলের নামগুলি মোকাবেলা করতে চান তবে একটি স্ট্যান্ডার্ড শেলের চেয়ে বেশি শক্তিশালী সরঞ্জামগুলি অবলম্বন না করে আপনার খুব কঠিন সময় হবে: zsh, পারল, পাইথন…