ফাইলগুলির টাইমস্ট্যাম্পগুলি ইউএসবি ড্রাইভে অনুলিপি করা হয়েছে


13

আমার পিসি বা ল্যাপটপ থেকে ইউএসবি ড্রাইভে অনুলিপি করা ফাইলগুলির টাইমস্ট্যাম্পগুলির সাথে আমার একটি সমস্যা আছে: মূল ফাইলের শেষ পরিবর্তনের সময় এবং অনুলিপি করা ফাইলটি আলাদা। সুতরাং, আমার পিসি এবং আমার ইউএসবি ড্রাইভের মধ্যে ফাইলগুলি সিঙ্ক্রোনাইজ করা বেশ জটিল c

ধাপে ধাপে বর্ণনা

  1. আমি আমার পিসি / ল্যাপটপ থেকে জিইউআই ব্যবহার করে বা কমান্ড দিয়ে একটি ইউএসবি ড্রাইভে একটি স্বেচ্ছাসেবী ফাইল অনুলিপি করি

    cp -a file.txt /media/gabor/CORSAIR/
    
  2. আমি আসল ফাইলের শেষ পরিবর্তন সময়টি যাচাই করি:

    $ 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
    
  3. আমি অনুলিপি করা ফাইলের শেষ সংশোধন সময় চেক:

    $ 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
    
  4. আপনি দেখতে পাচ্ছেন, অনুলিপি করা ফাইলের শেষ সংশোধন সময়ের সেকেন্ডগুলি শূন্য দশমিক অঙ্কগুলিতে কাটা হয়েছে। তবে আমি যদি কমান্ডটি প্রবেশ করি

    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.

  1. যদি আমি ইউএসবি ড্রাইভটি আনমাউন্ট এবং পুনঃস্থাপন করি না এবং পরিস্থিতি পরিবর্তন হয় এবং আমি শেষ দুটি কমান্ড আবার কার্যকর করি:

    $ 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.
    
  2. সুতরাং পুনঃমাউন্টের পরে, অনুলিপি করা ফাইলের শেষ সংশোধন সময়টি আরও এক সেকেন্ড কমিয়ে আনা হয়েছে। আরও আনমাউন্টিং এবং পুনরায় মাউন্টিং, তবে, শেষের সময়ের আর কোনও প্রভাব ফেলবে না। তদতিরিক্ত, ফাইলগুলির পরীক্ষা এখন দেখায় যে পিসিতে ফাইলটি আরও নতুন (যদিও এটি নেই) 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
সুডোডাস

উত্তর:


17

টাইমস্ট্যাম্প সেকেন্ডে পরিবর্তনের সমস্যাটি এ থেকে আসে যে কোনও ভিএফএটি (হ্যাঁ, এমনকি এফএটি 32ও) ফাইল সিস্টেমটি কেবলমাত্র 2-সেকেন্ডের রেজোলিউশন সহ পরিবর্তনের সময়টি সংরক্ষণ করে।

স্পষ্টতই, যতক্ষণ ফাইল সিস্টেমটি মাউন্ট করা থাকে ততক্ষণ ফাইল-সিস্টেম ড্রাইভার টাইমস্ট্যাম্পগুলি সঠিকভাবে 1-সেকেন্ড রেজোলিউশনের ক্যাশে করে (সম্ভবত পসিক্স প্রয়োজনীয়তাগুলি পূরণ করতে পারে), তবে একবার ফাইল সিস্টেমটি আনমাউন্ট করার পরে, ক্যাশেগুলি সাফ হয়ে যায় এবং আপনি দেখতে পাবেন যে আসলে কী রেকর্ড করা আছে ফাইল সিস্টেম ডিরেক্টরি।

পিসি এবং ল্যাপটপের মধ্যে দুই ঘন্টার পার্থক্যটি সম্ভবত বিভিন্ন টাইমজোন সেটিংস এবং / অথবা ভিএফএটি ফাইল সিস্টেমের জন্য পৃথক ডিফল্ট মাউন্ট বিকল্পগুলির কারণে ঘটে। (আমি অনুমান করছি যে আপনি এমন এক সময় অঞ্চলে অবস্থিত যার ইউটিসি অফসেটটি বর্তমানে ২ ঘন্টা, ইতিবাচক বা নেতিবাচক।

অভ্যন্তরীণভাবে, লিনাক্স ইউনিক্স-স্টাইল ফাইল সিস্টেমগুলিতে ইউটিসি টাইমস্ট্যাম্প ব্যবহার করে; তবে ভিএফএটি ফাইল সিস্টেমগুলিতে, (বর্তমান) ডিফল্ট হ'ল ভিএফএটি ফাইল সিস্টেম টাইমস্ট্যাম্পগুলিতে স্থানীয় সময় ব্যবহার করা, কারণ এমএস-ডস এবং উইন্ডোজ এখনও তা করে। তবে দুটি মাউন্ট অপশন রয়েছে যা এটি প্রভাবিত করতে পারে: আপনি tz=UTCভিএফএটি ফাইল সিস্টেমে ইউটিসি-ভিত্তিক টাইমস্ট্যাম্পগুলি ব্যবহার করার জন্য মাউন্ট বিকল্পটি নির্দিষ্ট করতে পারেন , বা আপনি time_offset=<minutes>এই নির্দিষ্ট ফাইল সিস্টেমের সাথে টাইমজোন অফসেটটি স্পষ্টভাবে নির্দিষ্ট করতে ব্যবহার করতে পারেন ।

এটি হতে পারে যে ভিএফএটি-র জন্য ডিফল্ট মাউন্ট অপশনগুলি উবুন্টু 14.04 এবং 16.04 এর মধ্যে পরিবর্তিত হয়েছে, হয় কার্নেলের মধ্যে বা udisksঅপসারণযোগ্য-মিডিয়া সহায়ক পরিষেবা, যার ফলে আপনি দেখতে পান এমন দুই ঘন্টার পার্থক্য।


আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ। আমি mount | grep CORSAIRআমার ল্যাপটপে আউটপুট দিয়ে আমার প্রশ্নটি শেষ করেছি , যা আমার পিসির আউটপুট থেকে প্রকৃতই আলাদা। এছাড়াও, আপনি ঠিক বলেছেন, আমি সিইএসটি (= ইউটিসি + 2) সময় অঞ্চলে মধ্য ইউরোপে অবস্থিত।
কে গ্যাবর

এই মাউন্ট আউটপুটগুলির কোনওটিতেই এমন কোনও মাউন্ট অপশন অন্তর্ভুক্ত বলে মনে হচ্ছে না যা টাইমস্ট্যাম্পগুলিকে প্রভাবিত করবে, সুতরাং আমি মনে করি VFAT টাইমস্ট্যাম্পগুলির জন্য ডিফল্ট হ্যান্ডলিং অবশ্যই উবুন্টুর সেই সংস্করণের মধ্যে কার্নেল স্তরে পরিবর্তিত হয়েছে। আপনি যদি আপনার USB ড্রাইভের জন্য এন্ট্রি লিখেন তবে দৃশ্যত আধুনিককে udisksনির্দিষ্ট করা মাউন্ট বিকল্পগুলির সম্মান করা উচিত /etc/fstab
telcoM

0

যদিও আমি আমার প্রশ্নে লিখেছিলাম যে "আমি vfatআমার ইউএসবি ড্রাইভে ফাইল সিস্টেমটি রাখতে চাই ", শেষ পর্যন্ত আমি সেগুলি ntfsফাইল সিস্টেমে পুনরায় ফর্ম্যাট করেছি । লিনাক্স এবং উইন্ডোজ উভয়ই হ্যান্ডল করতে পারে ntfsএবং এটি উপরে বর্ণিত টাইমস্ট্যাম্পগুলির সাথে অদ্ভুত ঘটনাটি প্রদর্শন করবে না বলে মনে হচ্ছে।


হ্যাঁ, এনটিএফএস সমস্ত ফাইল টাইমস্ট্যাম্পগুলি ইউটিসি সময়ের উপর ভিত্তি করে -৪-বিট সংখ্যা হিসাবে সঞ্চয় করে, তাই তাদের একটি 100-ন্যানোসেকেন্ড রেজোলিউশন রয়েছে এবং তারিখের সীমা 1 জানুয়ারী 1601 থেকে 28 মে 60056 পর্যন্ত রয়েছে That এটি যথেষ্ট পরিমাণের চেয়ে বেশি হওয়া উচিত। আরও গুরুত্বপূর্ণ, ভিএফএটি ফাইল সিস্টেমগুলির টাইমজোন অস্পষ্টতার জন্য কোনও স্থান নেই।
telcoM
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.