ফাইলের পরিবর্তনের তারিখগুলো অপরিবর্তিত রেখে ম্যাক ড্রাইভগুলোর মধ্যে একটি প্রজেক্ট অনুলিপি করতে, টার্মিনালে macOS-এর ditto কমান্ড ব্যবহার করুন এবং ফলাফলটি যাচাই করুন। একটি সীমাবদ্ধতার বিষয় মনে রাখা জরুরি: ditto পরিবর্তন ও অ্যাক্সেসের সময় সংরক্ষণ করার কথা উল্লেখ করে, কিন্তু ফাইলের মূল তৈরির তারিখ নয়। যদি "তারিখ" বলতে Finder-এর Created মান বোঝায়, তবে macOS-এর নথিভুক্ত অনুলিপি করার বিকল্পগুলো এটি ধরে রাখার প্রতিশ্রুতি দেয় না। সোর্স ড্রাইভটি মুছে ফেলা বা রিফরম্যাট করার আগে কোন তারিখটি গুরুত্বপূর্ণ তা পরীক্ষা করে নিন।
প্রথমে আপনার যে তারিখটি রাখা দরকার তা চিহ্নিত করুন
একটি ফাইলের Modified তারিখ রেকর্ড করে কখন এর বিষয়বস্তু সর্বশেষ পরিবর্তিত হয়েছিল। এর Created তারিখ হলো একটি পৃথক ফাইল-সিস্টেম অ্যাট্রিবিউট। Finder Date Added-ও দেখাতে পারে, যা কোনো আইটেম একটি নির্দিষ্ট অবস্থানে কখন যোগ করা হয়েছিল তা নির্দেশ করে। অ্যাপল তৈরির এবং বিষয়বস্তু পরিবর্তনের তারিখগুলোকে পৃথক ফাইল-সিস্টেম মেটাডেটা অ্যাট্রিবিউট হিসেবে তালিকাভুক্ত করে, তাই একটি সংরক্ষণ করা হলেই অন্যগুলোও সংরক্ষিত হয়েছে তা নিশ্চিত হয় না। Apple’s file-system metadata keys
একটি প্রজেক্ট আর্কাইভের ক্ষেত্রে, সর্বশেষ সম্পাদিত সংস্করণটি চিহ্নিত করতে প্রায়শই Modified তারিখটি ব্যবহার করা হয়। যদি আপনার বিশেষভাবে Created বা Date Added-এর প্রয়োজন হয়—উদাহরণস্বরূপ, অন্য কোনো ওয়ার্কফ্লো যদি সেই ফিল্ড অনুসারে ফাইল সাজায়—তবে সেটিকে একটি পৃথক প্রয়োজনীয়তা হিসেবে বিবেচনা করুন। Modified অক্ষুণ্ণ রয়েছে বলেই Created-ও টিকে গেছে এমনটি ধরে নেবেন না।
ditto দিয়ে প্রজেক্টটি অনুলিপি করুন
একটি নতুন গন্তব্য ফোল্ডারের জন্য, উভয় ড্রাইভ সংযুক্ত করুন এবং টার্মিনাল খুলুন। উদাহরণস্বরূপ ব্যবহৃত ভলিউম এবং ফোল্ডারের নামগুলোকে Finder-এ দেখানো নামগুলো দিয়ে প্রতিস্থাপন করুন। গন্তব্য ফোল্ডারে এমন কোনো প্রজেক্টের অনুলিপি আগে থেকেই থাকা উচিত নয় যা আপনার রাখা প্রয়োজন: ditto বিদ্যমান গন্তব্যে মার্জ করতে পারে এবং একই নামের ফাইলগুলোকে ওভাররাইট করতে পারে।
ditto -V "/Volumes/SourceDrive/Project" "/Volumes/BackupDrive/Project"
এটি প্রজেক্ট ফোল্ডারের বিষয়বস্তুকে Project নামের একটি গন্তব্য ফোল্ডারে অনুলিপি করে; -V অনুলিপিকৃত প্রতিটি আইটেম প্রদর্শন করে। macOS ditto ম্যানুয়ালে বলা হয়েছে যে অনুলিপিকৃত আইটেমগুলো সোর্সের পরিবর্তন এবং অ্যাক্সেসের সময় ধরে রাখে, এবং রিসোর্স ফর্ক ও এক্সটেন্ডেড অ্যাট্রিবিউটগুলো ডিফল্টভাবেই সংরক্ষিত হয়। এটি যেসব টাইমস্ট্যাম্প সংরক্ষণের প্রতিশ্রুতি দেয় তার মধ্যে তৈরির সময় অন্তর্ভুক্ত নেই। DITTO(1), macOS manual page
যদি গন্তব্য ফোল্ডারটি ইতিমধ্যে বিদ্যমান থাকে, তবে ditto সোর্সকে সেটির সাথে মার্জ করে দেয়। আপনি যখন একটি সম্পূর্ণ নতুন অনুলিপি চান তখন একটি নতুন, সঠিকভাবে নাম দেওয়া গন্তব্য ফোল্ডার ব্যবহার করুন এবং ফলাফলের ওপর নির্ভর করার আগে কমান্ডের আউটপুটে কোনো ত্রুটি আছে কিনা তা পরীক্ষা করে নিন। সাধারণভাবে --norsrc যোগ করবেন না: ম্যানুয়ালে বলা হয়েছে যে এটি রিসোর্স ফর্ক অনুলিপি করা নিষ্ক্রিয় করে এবং ওভাররাইড না করা হলে, এক্সটেন্ডেড অ্যাট্রিবিউট ও ACL-ও নিষ্ক্রিয় করে দেয়। ম্যাক প্রজেক্ট ফাইলের ক্ষেত্রে এই অ্যাট্রিবিউটগুলো অত্যন্ত গুরুত্বপূর্ণ হতে পারে।
কেন cp -p তৈরির তারিখ সংক্রান্ত সমস্যার সমাধান নয়
-p সহ বিল্ট-ইন cp কমান্ড পরিবর্তনের এবং অ্যাক্সেসের সময় সংরক্ষণ করে, সাথে অনুমতি সাপেক্ষে অন্যান্য অ্যাট্রিবিউটও রাখে। অ্যাপলের cp ম্যানুয়ালটিতেও সেই তালিকায় তৈরির সময় অন্তর্ভুক্ত নেই। এর ফলে আপনি যখন পরিবর্তনের তারিখগুলো রাখতে চান তখন cp -p কার্যকর, তবে ড্রাইভ জুড়ে ফাইলের মূল Created তারিখ বহন করার জন্য এটি কোনো নথিভুক্ত পদ্ধতি নয়। Apple’s cp manual
উভয় কমান্ডের কোনোটিই প্রতিশ্রুতি দিতে পারে না যে প্রতিটি অ্যাট্রিবিউট প্রতিটি গন্তব্যে হুবহু একইভাবে স্থানান্তরিত হবে। একটি ড্রাইভের ফাইল সিস্টেম এবং আপনার অ্যাকাউন্টের জন্য উপলব্ধ অনুমতিগুলো প্রভাবিত করে যে কোন মেটাডেটা সংরক্ষণ বা প্রয়োগ করা যেতে পারে। উদাহরণস্বরূপ, ditto-এর ম্যানুয়ালে বলা হয়েছে যে কিছু অ্যাট্রিবিউট কেবল সমর্থিত গন্তব্য ভলিউম এবং অনুমতিতেই সংরক্ষিত থাকে।
মূল ফাইলটি অপসারণ করার আগে যাচাই করুন
অনুলিপি করার পরে, Finder-এ কয়েকটি প্রতিনিধি ফাইল নির্বাচন করুন এবং Get Info খুলতে Command-I টিপুন। সোর্স এবং গন্তব্যের Modified মানগুলোর তুলনা করুন; আপনার প্রয়োজন হলে Created মানও তুলনা করুন। Finder List ভিউতে, আপনি উপলব্ধ তারিখের কলামগুলো পরিদর্শন ও সাজাতে পারেন, যদিও অ্যাপল সমস্ত তারিখের ফিল্ড স্থানান্তরিত হওয়ার গ্যারান্টির চেয়ে List ভিউয়ের পরিবর্তনের তারিখ প্রদর্শনের দিকটিই নথিভুক্ত করে। Apple Support: Organize your files in the Finder on Mac
প্রজেক্টের মূল ফোল্ডারের পাশাপাশি এর ভেতরে থাকা ফাইলগুলোও পরীক্ষা করুন এবং গন্তব্য থেকে গুরুত্বপূর্ণ প্রজেক্ট ফাইলগুলো খুলুন। যদি Modified মিলে যায় কিন্তু Created পরিবর্তিত হয়ে থাকে, তবে অনুলিপিটি নথিভুক্ত টাইমস্ট্যাম্প সংরক্ষণ প্রক্রিয়া সম্পন্ন করেছে কিন্তু তৈরির তারিখের প্রয়োজনীয়তা পূরণ করেনি। আপনি যে তারিখগুলো এবং প্রজেক্টের বিষয়বস্তুর ওপর নির্ভর করছেন সেগুলো গন্তব্যে সঠিকভাবে বিদ্যমান আছে তা নিশ্চিত না করা পর্যন্ত সোর্স ফাইলগুলো অক্ষত রাখুন।
যদি সঠিক Created তারিখ থাকা অপরিহার্য হয়, তবে আপনার সোর্স এবং গন্তব্য ফাইল সিস্টেমের জন্য তৈরির তারিখ সংরক্ষণ এবং পুনরুদ্ধার স্পষ্টভাবে সমর্থিত কিনা তা নিশ্চিত করার পরেই অনুলিপি বা আর্কাইভ করার ওয়ার্কফ্লো বেছে নিন। অ্যাপলের ditto এবং cp -p ডকুমেন্টেশনে এই প্রতিশ্রুতি দেওয়া হয়নি, তাই সেই প্রয়োজনীয়তার জন্য কোনো কমান্ডকেই পরীক্ষিত সমাধান হিসেবে বিবেচনা করবেন না।
তথ্যসূত্র
File System Metadata Attribute Keys — Apple Developer
DITTO(1) — macOS Manual Pages
cp(1) — Apple Open Source
Organize your files in the Finder on Mac — Apple Support