লিনাক্স অপারেটিং সিস্টেম আপনার সিস্টেমে প্রতিটি ফাইলের জন্য তিনটি টাইমস্ট্যাম্প ট্র্যাক রাখে। এই টাইমস্ট্যাম্পগুলি আপনাকে আবিষ্কার করতে সক্ষম করে যে ফাইলটি শেষবার আপডেট করা হয়েছিল। কিন্তু তারা সব মানে কি? এবং কিভাবে আপনি একটি ফাইলের জন্য এই বার খুঁজে বের করবেন? ডিরেক্টরির ক্ষেত্রে কি কোনো পার্থক্য আছে?
atime, ctime এবং mtime বোঝা এই সমস্ত প্রশ্নের উত্তর দিতে পারে। এই তিনটি টাইমস্ট্যাম্প যা ইউনিক্স ফাইল সিস্টেম ট্র্যাক করে। কি পরিবর্তিত হয়েছে এবং কখন সে সম্পর্কে আপনার যদি কখনও বিশদ বিবরণ জানতে হয় তবে পড়ুন৷
৷তিনটি ইউনিক্স টাইমস্ট্যাম্প কি?
প্রতিটি ফাইলের সাথে যুক্ত তিনটি টাইমস্ট্যাম্প রয়েছে। Linux এগুলিকে ইউনিক্স টাইম ফর্ম্যাটে সংরক্ষণ করে যা যুগের পর থেকে সেকেন্ড পরিমাপ করে। তিনটি টাইমস্ট্যাম্পকে সাধারণত atime, ctime এবং mtime বলা হয়।
mtime সবচেয়ে সাধারণ এবং প্রায়ই সবচেয়ে দরকারী. এর অর্থ হল পরিবর্তিত সময় . এটি সেই সময় যখন ফাইলের বিষয়বস্তুগুলি শেষবার ডিস্কে লেখা হয়েছিল৷
৷একটু ভিন্ন হল ctime যার অর্থ হল সময় পরিবর্তন . এই টাইমস্ট্যাম্প মালিকানা এবং অনুমতির মতো মেটাডেটা পরিবর্তনগুলি ট্র্যাক করে৷ এটিতে একটি ফাইলের নামকরণ অন্তর্ভুক্ত রয়েছে - অন্তত, সাধারণ আধুনিক লিনাক্স ওএসে। কিন্তু ফাইলের বিষয়বস্তু পরিবর্তন হলে এটিও আপডেট হয়, তাই এটি সর্বদা এমটাইমের মতো আপ-টু-ডেট থাকে।
তৃতীয় টাইমস্ট্যাম্প হল atime , যা শেষবার কেউ ফাইল অ্যাক্সেস করার সময় সঞ্চয় করে।
কিভাবে টাইমস্ট্যাম্প ডিরেক্টরিতে প্রযোজ্য হয়
একটি লিনাক্স ডিরেক্টরি, মূলত, সেই ডিরেক্টরির ফাইলগুলির একটি তালিকা। তাই একটি ডিরেক্টরির মধ্যে একটি ফাইল তৈরি করলে সেই ডিরেক্টরিটির mtime আপডেট হবে। ls ব্যবহার করে ডিরেক্টরিতে ফাইলগুলি তালিকাভুক্ত করা কমান্ড, উদাহরণস্বরূপ, তার অ্যাক্সেস সময় আপডেট করে। এবং, একটি ফাইলের মতো, একটি ডিরেক্টরির অনুমতি বা নাম পরিবর্তন করা তার ctime আপডেট করে৷
৷সৃষ্টির সময় সম্পর্কে কি?
এটি আপনাকে অবাক করে দিতে পারে যে লিনাক্স কেবল সৃষ্টির সময় ট্র্যাক রাখে না। আপনি প্রাথমিকভাবে ধরে নিতে পারেন যে ctime সৃষ্টির সময় বোঝায়। সমানভাবে, আপনি এটি খুঁজে পেতে সক্ষম হওয়ার জন্য এটিকে একটি খুব দরকারী জিনিস হিসাবে ভাবতে পারেন।
অনেক অ্যাপ্লিকেশন প্রতিবার স্ক্র্যাচ থেকে ফাইল তৈরি করে সংরক্ষণ করে। এটি একটি সৃষ্টির সময়কে বিভ্রান্তিকর করে তুলবে৷
কিভাবে বিভিন্ন টাইমস্ট্যাম্প দেখতে হয়
টাইমস্ট্যাম্প তথ্য পাওয়ার সবচেয়ে সহজ উপায় হল ls আদেশ ডিফল্ট লং ফরম্যাট এমটাইমের জন্য বিশদ দেখায়:
$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo "hello, world" > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp
আপনি -u ব্যবহার করে পরিবর্তে atime প্রদর্শন করতে পারেন পতাকা:
$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp
শেষ লাইন নিশ্চিত করে যে এই ফাইলের mtime atime থেকে আলাদা। অবশেষে, -c ব্যবহার করুন ctime দেখার জন্য পতাকা:
$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2
এইবার, আমরা নিশ্চিত করি যে তিনটি সময়ই স্বতন্ত্র এবং সঠিক:আমরা সেই ক্রমে পরিবর্তন করেছি, তারপর অ্যাক্সেস করেছি, তারপর ফাইল পরিবর্তন করেছি।
ls-এর বিকল্প হল stat আদেশ এই কমান্ডটি ফাইলের ইনোড থেকে নিম্ন-স্তরের বিবরণ প্রদর্শন করে। এটি একবারে তিনটি বার চেক করা সহজ করে তোলে। এটি অজ্ঞাত -u-এর সমস্যাও খুঁজে পায় পতাকা এখানে একই ফাইলের জন্য একটি উদাহরণ আউটপুট:
$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000
কিভাবে টাইমস্ট্যাম্প আপডেট করবেন
স্পর্শ কমান্ড একটি ফাইলের পরিবর্তন এবং অ্যাক্সেসের সময় পরিবর্তন করে। এটি একটি খালি ফাইল তৈরি করার একটি সুবিধাজনক উপায়, যা ফাইলটি আগে থেকে না থাকলে এটি করবে:
touch tmp
ডিফল্টরূপে, এটি বর্তমান সময়ে mtime এবং atime সেট করবে। আপনি -t দিয়ে একটি ভিন্ন সময় সেট করতে পারেন পতাকা:
touch -t 202103061200 tmp
এছাড়াও আপনি -m দিয়ে শুধুমাত্র mtime বা atime সেট করতে পারেন এবং -a পতাকা যথাক্রমে:
touch -t 202103061300 -m tmp
মনে রাখবেন যে ctime সবসময় আপডেট হয় যখন আমরা atime বা mtime সেট করি।
টাইমস্ট্যাম্পের উপর ভিত্তি করে ফাইলগুলি কীভাবে সন্ধান করবেন
খোঁজ কমান্ড হল আরেকটি টুল যা টাইমস্ট্যাম্পে কাজ করে। এটি atime, ctime, বা mtime এর উপর ভিত্তি করে ফাইল ফিল্টার করতে পারে। যেমন:
find . -amin 15
ঠিক 15 মিনিট আগে অ্যাক্সেস করা ফাইলগুলি খুঁজে পাবে, যখন:
find . -mtime -2
গত দুই দিনের মধ্যে পরিবর্তিত ফাইলগুলি খুঁজে পাবে৷
৷লিনাক্স প্রতিটি ফাইল তিনবার ট্র্যাক রাখে
সবচেয়ে সাধারণভাবে উল্লেখ করা ফাইল টাইমস্ট্যাম্প হল mtime। এটি হল তারিখ এবং সময় যা একটি ফাইল তালিকা দেখায়, উদাহরণস্বরূপ। তবে অন্য দুটি টাইমস্ট্যাম্পও কার্যকর হতে পারে, যদি আপনি বুঝতে পারেন যে তারা কী নির্দেশ করছে। বিশেষ করে, সর্বদা মনে রাখবেন যে ctime পরিবর্তন প্রতিনিধিত্ব করে সময়, সৃষ্টি নয় সময়।
স্পর্শ এবং স্ট্যাটের মতো কমান্ডগুলি লিনাক্স কমান্ড লাইন টুলবক্সের দরকারী সদস্য। এই কমান্ডগুলি আপনাকে দ্রুত নতুন ফাইল তৈরি করার অনুমতি দিয়ে আপনার লিনাক্স ওয়ার্কফ্লোকে উন্নত করবে।