mv
কমান্ড সহ 180 গিগাবাইট সহ ফোল্ডারটির নামকরণ করা কি ঝুঁকিপূর্ণ ?
আমাদের একটি ফোল্ডার /data
রয়েছে যাতে 180 গিগাবাইট রয়েছে।
কমান্ড দিয়ে আমরা /data
ফোল্ডারটির নাম পরিবর্তন করতে চাই ।/BD_FILES
mv
এটি করা কি নিরাপদ?
mv
কমান্ড সহ 180 গিগাবাইট সহ ফোল্ডারটির নামকরণ করা কি ঝুঁকিপূর্ণ ?
আমাদের একটি ফোল্ডার /data
রয়েছে যাতে 180 গিগাবাইট রয়েছে।
কমান্ড দিয়ে আমরা /data
ফোল্ডারটির নাম পরিবর্তন করতে চাই ।/BD_FILES
mv
এটি করা কি নিরাপদ?
উত্তর:
কোনও ফোল্ডারে নাম পরিবর্তন করা নিরাপদ, যদি এটি একই ফাইল সিস্টেমের মধ্যে থাকে।
যদি এটি মাউন্ট পয়েন্ট হয় ( /data
কিন্ডা দেখে মনে হচ্ছে এটি আমার কাছে মাউন্ট পয়েন্ট হতে পারে তবে এটি পরীক্ষা করে দেখুন mount
), তবে আপনাকে কেবল একটি সরল ব্যতীত অন্য কিছু করতে হবে mv
যেহেতু mv /data /BD_FILES
তথ্যটি মূল বিভাজনে স্থানান্তরিত করবে (যা নাও হতে পারে আপনি ঘটতে চান)।
আপনার ফাইল সিস্টেমটি আনমাউন্ট করা উচিত, এখন খালি ডিরেক্টরিটির নতুন নামকরণ, আপডেট করা উচিত /etc/fstab
নতুন এই ফাইল সিস্টেমের জন্য নতুন অবস্থানের সাথে এবং তারপরে পুনরায় নামকরণ করা স্থানে ফাইল সিস্টেমটি পুনরায় গণনা করুন।
অন্য কথায়,
umount /data
mv /data /BD_FILES
(অভিমানী /BD_FILES
ইতিমধ্যে বিদ্যমান নেই, সেক্ষেত্রে এটিকে প্রথমে সরিয়ে দিন)/etc/fstab
, পরিবর্তন করা থেকে বিন্দু মাউন্ট /data
করার/BD_FILES
mount /BD_FILES
এর চারপাশে কোনও ফাইল অনুলিপি করা জড়িত না, এটি কেবলমাত্র ডিরেক্টরি সিস্টেমের নাম পরিবর্তন করে যা ফাইল সিস্টেমের মাউন্ট পয়েন্ট হিসাবে কাজ করে।
ডিরেক্টরিটির নতুন নামকরণের ক্ষেত্রে যদি এটি কোনও নতুন ফাইল সিস্টেমে স্থানান্তরিত হয় (যা অন্য ডিস্কে থাকা /data
অবস্থায় একটি ডিস্কে থাকা অবস্থায় /BD_FILES
ঘটে থাকে তবে আপনি যদি জিনিসগুলিকে আরও বড় পার্টিশনে নিয়ে যান তবে করণীয় সাধারণ জিনিস) , আপনি অনুলিপিটি ঠিক আছে কিনা তা পরীক্ষা না করা পর্যন্ত মূল অক্ষত রেখে যাওয়ার সময় আমি ডেটা অনুলিপি করার পরামর্শ দিই। আপনি এটি দিয়ে করতে পারেন
rsync -a /data/ /BD_FILES/
উদাহরণস্বরূপ, তবে এটি rsync
কী করে এবং কী করে না তার জন্য ম্যানুয়ালটি দেখুন (এটি হার্ড লিঙ্কগুলি সংরক্ষণ করে না, উদাহরণস্বরূপ)।
একবার ফোল্ডারটির নাম পরিবর্তন হয়ে গেলে, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে বিদ্যমান প্রক্রিয়াগুলি (প্রোগ্রাম এবং ফোল্ডার ব্যবহারকারীরা, ব্যাকআপগুলি ইত্যাদি) নাম পরিবর্তন সম্পর্কে সচেতন aware
mv
কেবলমাত্র একটি rename
সিস্টেম কল করার প্রত্যাশা করে , কিন্তু পরিস্থিতির কারণে কেউ বুঝতে পারে না যে এটি ফাইলগুলি অনুলিপি করে আসলটি মুছে ফেলবে। যদি আমার একেবারে নির্দিষ্ট হওয়া দরকার তবে কেবল একটি rename
সিস্টেম কল করা হয়েছে এবং mv
আমার পিঠের পিছনে কিছু "চালাক" করতে যাচ্ছি না আমি একটি পাইথন শেলটি খুলি এবং ব্যবহার করি os.rename
।
mkdir /BD_FILES && mount -M /data /BD_FILES && rmdir /data
rsync
এটি restartable হয়।
rsync -a
প্রায় সমস্ত মেটাডেটা সংরক্ষণ করে তবে হার্ড লিঙ্ক, এসিএল বা বর্ধিত বৈশিষ্ট্য নয় (এর -HAX
জন্য যোগ করুন )।
rename
বিভিন্ন আচরণের সাথে বিভিন্ন কমান্ড রয়েছে। আমি মনে করি এটি rename
কমান্ডটি ব্যবহার না করার পক্ষে যথেষ্ট কারণ যখন আপনি নিশ্চিত হতে চান যে এটি কী করছে।
যদি আপনি কেবল নাম পরিবর্তন করেন ( একই ফাইল সিস্টেমে উত্স এবং লক্ষ্য ), এটি কেবল ডিরেক্টরি এন্ট্রিটির একটি নতুন নাম। এটি হয় সফল হয় এবং ডিরেক্টরিতে নতুন নাম থাকে, বা ব্যর্থ হয় যার ক্ষেত্রে কোনও পরিবর্তন হয় না * ।
যদি উত্স এবং লক্ষ্যগুলি বিভিন্ন ফাইল সিস্টেমে থাকে তবে ডেটা দ্বারা অনুলিপি করা দরকার mv
। ফাইল সিস্টেমের বৈশিষ্ট্যগুলির মধ্যে পার্থক্য যেমন সর্বোচ্চ ফাইলের আকার, ফাইলের নাম সীমাবদ্ধতা ইত্যাদি সমস্যার কারণ হতে পারে। সমস্যাগুলি এড়াতে প্রথমে ফাইলগুলি অনুলিপি করুন (cp
,, rsync
…) এবং অনুলিপি সফলভাবে শেষ হওয়ার পরে, ফাইলগুলি মূল অবস্থানে সরিয়ে ফেলুন।
* তবে কিছু কোণার মামলা রয়েছে, উদাহরণস্বরূপ ম্যান 2 নাম পরিবর্তনের ক্ষেত্রে বুগস বিভাগে উল্লেখ করা হয়েছে
অন্যরা যেমন বলেছে, কোনও ফোল্ডারটির নামকরণের বিষয়বস্তুগুলির মধ্যে অন্তর্নিহিত ঝুঁকি নেই। তবে আপনি বিবেচনা করতে চাইতে পারেন এমন এক অন্য ধরণের ঝুঁকি রয়েছে।
বিদ্যমান প্রক্রিয়া, স্ক্রিপ্টস, ব্যবহারকারী-সংজ্ঞায়িত শর্টকাটগুলি এবং কনফিগারেশন যা মূল অবস্থানটি উল্লেখ করে এই পরিবর্তনটি ভেঙে যেতে পারে এবং উদাহরণস্বরূপ, যদি পাথগুলি একটি ডাটাবেসে সংরক্ষণ করা হয় তবে সেগুলি আপডেট করা বড় কাজ হতে পারে।
আপনি যা করতে পারেন তা হল নতুন ডিরেক্টরি নামের জন্য একটি প্রতীকী লিঙ্ক তৈরি করা, তবে কিছুক্ষণের জন্য পুরানো নামটি রেখে দিন। এটি আপনাকে এই পরিবর্তনের প্রভাব মূল্যায়নের জন্য সময় দেবে। আপনি অস্থায়ীভাবে পুরানো নামটি মুছে ফেলতে পারেন, কোনও সমস্যা আছে কিনা তা দেখুন এবং যদি সেখানে থাকে তবে কেবল পুরানো নামটি পুনরায় তৈরি করুন যাতে লোকেদের আপডেট করা দরকার তা নির্ধারণ করার সময় লোকেরা কাজ চালিয়ে যেতে পারে।
এরকম একটি আদেশের এটি করা উচিত:
ln -s /data /BD_FILES
mv thing1 thing2 ; ln --symbolic ./thing2 thing1
। এইভাবে আমি নতুন নাম পেয়েছি এবং সহজেই সিমলিংক মোছার মাধ্যমে পুরানো অনুপস্থিতি পরীক্ষা করতে পারি।
নতুন নামটি পারমাণবিক। একমাত্র যুক্তিসঙ্গত ঝুঁকি হ'ল mv
কোনও কারণে সমস্ত কিছু অনুলিপি করার সিদ্ধান্ত নেয় এবং এটি অর্ধেকটি ক্র্যাশ হয়ে যায়। আপনি গনুহ থাকে mv
, mv -T
এই ঝুঁকি মুছে ফেলা হবে।
mv -T
বলে mv
যে এটি একটি নন-ফোল্ডারে চলেছে; যার ফলে এটি এমনটি করতে অস্বীকার mkdir()
করবে যা কোনও ফোল্ডার সরিয়ে নেওয়া হলে এটি ব্যর্থ হয়ে যাবে এবং কোনও কারণে এটি অনুলিপি করার সিদ্ধান্ত নিয়েছে।
mv -T
কয়েক বছর আগে আমার মাস্টারের থিসিসে কাজ করার সময় আমি বাগ ঝাঁকানোতে জড়িত ছিলাম । এটি অনেকগুলি প্রান্তের ক্ষেত্রে ভুল কাজ করত।
অন্যদিকে, আপনার কাছে রুট পার্টিশনে 180GB ব্যবহারকারীর ডেটা রয়েছে। আপনি সম্ভবত এটি মূল বিভাজন থেকে সরিয়ে নিতে চান।
mv
হন তবে-i
বিকল্পটি দিয়ে কল করুন ।