আমার পিসি বা ল্যাপটপ থেকে ইউএসবি ড্রাইভে অনুলিপি করা ফাইলগুলির টাইমস্ট্যাম্পগুলির সাথে আমার একটি সমস্যা আছে: মূল ফাইলের শেষ পরিবর্তনের সময় এবং অনুলিপি করা ফাইলটি আলাদা। সুতরাং, আমার পিসি এবং আমার ইউএসবি ড্রাইভের মধ্যে ফাইলগুলি সিঙ্ক্রোনাইজ করা বেশ জটিল c
ধাপে ধাপে বর্ণনা
আমি আমার পিসি / ল্যাপটপ থেকে জিইউআই ব্যবহার করে বা কমান্ড দিয়ে একটি ইউএসবি ড্রাইভে একটি স্বেচ্ছাসেবী ফাইল অনুলিপি করি
cp -a file.txt /media/gabor/CORSAIR/আমি আসল ফাইলের শেষ পরিবর্তন সময়টি যাচাই করি:
$ ls -l --time-style=full-iso file.txt -rw-rw-r-- 1 gabor gabor 0 2018-09-22 15:09:23.317098281 +0200 file.txtআমি অনুলিপি করা ফাইলের শেষ সংশোধন সময় চেক:
$ ls -l --time-style=full-iso /media/gabor/CORSAIR/file.txt -rw-r--r-- 1 gabor gabor 0 2018-09-22 15:09:23.000000000 +0200 /media/gabor/CORSAIR/file.txtআপনি দেখতে পাচ্ছেন, অনুলিপি করা ফাইলের শেষ সংশোধন সময়ের সেকেন্ডগুলি শূন্য দশমিক অঙ্কগুলিতে কাটা হয়েছে। তবে আমি যদি কমান্ডটি প্রবেশ করি
if ! [ file.txt -nt /media/gabor/CORSAIR/file.txt ] && ! [ file.txt -ot /media/gabor/CORSAIR/file.txt ]; then echo "The last modification times are equal."; fi
আমি আউটপুট পেতে The last modification times are equal.
যদি আমি ইউএসবি ড্রাইভটি আনমাউন্ট এবং পুনঃস্থাপন করি না এবং পরিস্থিতি পরিবর্তন হয় এবং আমি শেষ দুটি কমান্ড আবার কার্যকর করি:
$ ls -l --time-style=full-iso /media/gabor/CORSAIR/file.txt -rw-r--r-- 1 gabor gabor 0 2018-09-22 15:09:22.000000000 +0200 /media/gabor/CORSAIR/file.txt $ if [ file.txt -nt /media/gabor/CORSAIR/file.txt ]; then echo "The file is newer on the PC."; fi The file is newer on the PC.সুতরাং পুনঃমাউন্টের পরে, অনুলিপি করা ফাইলের শেষ সংশোধন সময়টি আরও এক সেকেন্ড কমিয়ে আনা হয়েছে। আরও আনমাউন্টিং এবং পুনরায় মাউন্টিং, তবে, শেষের সময়ের আর কোনও প্রভাব ফেলবে না। তদতিরিক্ত, ফাইলগুলির পরীক্ষা এখন দেখায় যে পিসিতে ফাইলটি আরও নতুন (যদিও এটি নেই) isn't
পরিস্থিতি আরও জটিল হয়ে দাঁড়িয়েছে যে ফাইলগুলির সর্বশেষ পরিবর্তনের সময়টি আমার পিসিতে এবং আমার ল্যাপটপে আলাদাভাবে প্রদর্শিত হয়, পার্থক্যটি ঠিক ২ ঘন্টা হয় যদিও আমার পিসিতে এবং আমার ল্যাপটপে তারিখ এবং সময় নির্ধারণ একই থাকে!
আরো তথ্য
আমার পিসি এবং ল্যাপটপ উভয়ই উপরে বর্ণিত আচরণ দেখায়। আমার পিসিতে উবুন্টু 14.04.5 (বিশ্বাসযোগ্য) এবং আমার ল্যাপটপে উবুন্টু 16.04.2 (জেনিয়াল) রয়েছে।
আমার ইউএসবি ড্রাইভে ভিফ্যাট ফাইল সিস্টেম রয়েছে। mount | grep CORSAIR আমার পিসিতে আউটপুট হয়
/dev/sdb1 on /media/gabor/CORSAIR type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)
mount | grep CORSAIR আমার ল্যাপটপে আউটপুট হয়
/dev/sdb1 on /media/gabor/CORSAIR type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
আমার অন্যান্য ইউএসবি ড্রাইভগুলি একই আচরণ দেখায়।
প্রশ্ন
শেষ পরিবর্তন সময়ের পার্থক্য কি কোনওভাবে দূর করা যেতে পারে? উদাহরণস্বরূপ, মাউন্টিং / আনমাউন্টিংয়ে অন্যান্য পরামিতি ব্যবহার করছেন? নাকি এটি উবুন্টুতে একটি বাগ আছে?
আমি অর্জন করতে চাই যে মূল এবং অনুলিপি করা ফাইলগুলির টাইমস্ট্যাম্পগুলি হুবহু একই, যাতে সিঙ্ক্রোনাইজেশন আরও দক্ষতার সাথে করা যায়। এছাড়াও, আমি আমার ইউএসবি ড্রাইভে ভিফ্যাট ফাইল সিস্টেমটি রাখতে চাই, যাতে আমি সেগুলি উইন্ডোতেও ব্যবহার করতে পারি।
ext4ফাইল সিস্টেম? (মাইক্রোসফ্ট মালিকানাধীন ফাইল সিস্টেম, ফ্যাট 32, এক্সএফএটি, এনটিএফএসের জন্য লিনাক্সের সমর্থনটির সীমাবদ্ধতা রয়েছে)) এই লিঙ্কটি দেখুন যা মাইক্রোসফ্টের মালিকানাধীন ফাইল সিস্টেমের বিকল্পext4হিসাবেও প্রস্তাব করেudf।