সর্বদা সরানো বদলে অনুলিপি করা এবং মুছে ফেলা কি ভাল?


18

সাধারণভাবে বলতে গেলে, আমি নিজেকে আতঙ্কিত করতে দেখি যখন আমি বুঝতে পারি যে আমি যদি কোনও ফাইল সরানো বাতিল করি তবে এটি লক্ষ্য বা উত্সকে অসম্পূর্ণ করতে পারে। এই প্রশ্নটি উইন্ডোজ এবং ইউনিক্স ভিত্তিক প্ল্যাটফর্মগুলিতে প্রযোজ্য। মুভ কমান্ড উভয় ক্ষেত্রে ঠিক কীভাবে কাজ করে তা আমি কখনই মনে করতে পারি না। উদাহরণস্বরূপ, আপনি যদি একটি ডিরেক্টরি সরিয়ে থাকেন; এটি কি পুরো ডিরেক্টরিটি অনুলিপি করে, এবং তারপরে এটি মুছে ফেলা হয়, বা এটি অনুলিপি করে প্রতিটি ফাইল পৃথকভাবে মুছে দেয়?

আমি সর্বদা উপলব্ধি করি, এরকম কিছু টাইপ করার পরে mv verybigdir dest, আমার সম্ভবত টাইপ করা উচিত ছিল cp -R verybigdir dest  &&  rm -R verybigdir(যেখানে &&অপারেটর কেবল প্রথম কমান্ডটি সফল হলেই পরবর্তী কমান্ডে এগিয়ে যায়) - বা এই অর্থহীন? ঠিক যখন ঘটে যায়, যখন আমি একটি চালুর মধ্য দিয়ে Ctrl+ Cঅর্ধেক পথ টিপবো? অনুরূপভাবে, আমি উইন্ডোজ ক্যান্সেল বাটন টিপলে ঠিক কী ঘটে?

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


16
আপনি যাই করুন না কেন, প্রথমে মুছবেন না।
এমটোন

@ মোমনোটোন হ্যালরিয়াস +1
নিক বোলটন

উত্তর:


10

উইন্ডোজে, একই ড্রাইভ এবং পার্টিশনে চলে যাওয়া ইউনিক্সের এমভি কমান্ডের মতো কাজ করবে এবং ফোল্ডারটির নাম পরিবর্তন করবে বা এর পিতামাতার পরিবর্তন করবে। তবে আপনি যদি এটি অন্য ড্রাইভার বা পার্টিশনে স্থানান্তরিত করতে চান তবে ফাইলটি ফাইলটি অনুলিপি করে মুছে ফেলতে পারে, সুতরাং পার্টিশন এবং হার্ডড্রাইভগুলিতে দ্রুত ফাইল সরিয়ে নেওয়ার জন্য টর্প ফাইল বা একটি জিপ ফাইল ব্যবহার করা আরও দক্ষ কেন? । আপনি যদি এটি বাতিল করতে চান তবে এটি যেখানে রয়েছে কেবল সেখানে থামবে। আমি ইউনিক্সের ক্ষেত্রেও এটি সত্য বলে বিশ্বাস করব তবে এটির 100% নিশ্চিত হওয়ার জন্য আমি যথেষ্ট পরীক্ষা নিরীক্ষা করিনি। এটি কেবল ইনোড পরিবর্তন করার বিষয়, তবে এটি যদি অন্য কোনও পার্টিশন বা ড্রাইভে থাকে তবে সেটিকে সেই বিভাগ বা ড্রাইভের সেক্টরে অনুলিপি করা দরকার। আপনি যদি স্থানান্তরকালে এটি বাতিল করতে চান, এটি ইতিমধ্যে কিছু ফাইল সরিয়ে নিয়ে যেত এবং যে ফাইলটি স্থানান্তর করা হচ্ছে তা এটি দেখতে পাবে '

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


আহ, আমি সংকোচনের কথা ভাবিনি।
নিক বোল্টন

আপনার সত্যিই সংকোচনের দরকার নেই, যার জন্য প্রচুর সময় প্রয়োজন। কখনও কখনও 0 (স্টোরেজ) এর একটি সংকোচনের স্তর ড্রাইভগুলি জুড়ে বড় ফোল্ডারগুলিকে আরও দ্রুত সরানোর জন্য কাজ করতে পারে।
নেকড়ে

"উইন্ডোজে, একই ড্রাইভ এবং পার্টিশনে চলে যাওয়া ইউনিক্সের এমভি কমান্ডের মতো কাজ করবে এবং ফোল্ডারটির নাম পরিবর্তন করবে বা এর পিতামাতার পরিবর্তন করবে।" - উইন্ডোজ এক্সপ্লোরার ব্যবহার করার সময় এটি সত্য নয়। এটি প্রচুর জঞ্জাল করে তোলে, যুগে যুগে সময় লাগে এবং আপনি দুটি ডিরেক্টরিতে সামগ্রীর বিভাজন নিয়ে শেষ হতে পারেন , আমার একটি প্রশ্নের উত্তরটি দেখুন ।
মার্টিনাস

@ মাআর্টিনাস আসলে, উইন্ডোজ এক্সপ্লোরার যেভাবে কাজ করে তা হ'ল প্যারেন্ট নোড পরিবর্তনের পরিবর্তে ফোল্ডারে পুনরাবৃত্তভাবে খনন করা হয়। আপনি ঠিক যদিও উইন্ডোজ এক্সপ্লোরারের জন্য, এটি কেবল কোনও পারমাণবিক পদক্ষেপ নয়। আমি ধরে নিয়েছিলাম কমান্ড লাইন ব্যবহার করা হচ্ছে, আমার জিজ্ঞাসা করা উচিত ছিল।
ওল্ফ

11

এমনকি একটি পুরোপুরি স্থিতিশীল কম্পিউটারে যা কখনই ব্যর্থ হয় না: আপনি যদি টাইমস্ট্যাম্পগুলির বিষয়ে যত্নশীল হন তবে mvতা সাধারণের চেয়ে ভাল cp

( cp -aআপনার জন্য টাইমস্ট্যাম্পগুলি সংরক্ষণ করবে এবং আমি ধরে নেব উইন্ডোজে অনুরূপ কিছু উপস্থিত রয়েছে)।


1
আহা, টাইমস্ট্যাম্পস। আমি তা বিবেচনা করিনি! +1
নিক বোল্টন

টাইমস্ট্যাম্পগুলি কি সত্যই গুরুত্বপূর্ণ ...
মার্সিন

1
@ মার্সিন, তারা যদি সেখানে জিজ্ঞাসা করে থাকে তবে তারা এখানে আছেন
ম্যাসেক

10

না।

ব্যাখ্যা:

mv verybigdir dest

গন্তব্যস্থলটির নাম পরিবর্তন করে খুব বিগডির। এটি একটি পারমাণবিক অপারেশন, অর্থাৎ অর্ধেক পেরিয়ে ব্যর্থ হতে পারে না।

যদি ভাগ্য অন্য ডিভাইসে থাকে, এমভি প্রথমে অনুলিপি করবে, তারপরে পুরানো সংস্করণটি মুছুন। এটি কোনও পারমাণবিক অপারেশন নয়। যদি এটি ব্যর্থ হয় তবে আপনার কাছে ডাস্টে কেবলমাত্র বিগডির একটি আংশিক অনুলিপি থাকতে পারে, তবে খুব বিগডির এখনও সম্পূর্ণ হবে।

হ্যাঁ, অন্যান্য অ্যাপ্লিকেশনগুলি ফাইলগুলি আলাদাভাবে সরিয়ে নিতে পারে।


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

3
@rob: নং ডিরেক্টরিগুলি হ'ল অন্যান্য ফাইলের মতো ফাইল এবং একইরকম আচরণ করা হয়। আপনি যে আচরণের কথা বলছেন তা অর্জন করা হয় mv verybigdir/* dest
ডিএমকেেকে

2
মূলত, mv verybigdir/* destএমভি প্রতিটি আর্গুমেন্টকে "সিপি অ্যান্ড অ্যান্ড আরএম" উপায়ে পরিচালনা করে ... জাস্টবিগডির এমভিকে প্রচুর পৃথক মুভ অপারেশনে বিভক্ত করে। সর্বদা মনে রাখবেন যে উইন্ডোজের বিপরীতে, একটি লিনাক্স প্রোগ্রাম / সরঞ্জাম সেখানে "*" দেখতে পায় না, এটি শেল দ্বারা প্রসারিত হয়।
জর্জেন এ। এয়ারহার্ড

4

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


3

ইউনিক্সে, ফাইল-সিস্টেমের সীমানা অতিক্রম না করা চালগুলিতে, mvডেটা অনুলিপি করে না: এটি বিভিন্ন ডিরেক্টরিতে কেবল ইনড ডাটাবেস আপডেট করে। এটি বড় ফাইলগুলির চেয়ে অনেক দ্রুত cp

তদুপরি, mvফাইল সিস্টেমের সীমানা জুড়ে ব্যবহার করা কেবল নিঃশব্দে একটি অনুলিপি এবং মুছে ফেলা প্রক্রিয়াটির জন্য প্রার্থনা করে।

সুতরাং আমি মনে করি আপনার পছন্দ করা উচিত mv


সুন্দরভাবে সংক্ষিপ্ত
নিক বোল্টন

"একটি অনুলিপি এবং মুছে ফেলা প্রক্রিয়া" এর অর্থ "প্রতিটি ফাইলের অনুলিপি করুন, তারপরে এটি মুছুন" বা "সমস্ত ফাইল অনুলিপি করুন, তারপরে সমস্ত মুছুন" হিসাবে ব্যাখ্যা করা যেতে পারে।
j_random_hacker

2

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

আমার এটির সমাধান হ'ল: যদি না আমি নিশ্চিত যে আমি এটিকে সরাতে চাই তবে কখনও সরানো হবে না।


1

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.