এমপি কেন সিপির তুলনায় এত দ্রুত? আমি কীভাবে একটি ভুল এমভি কমান্ড থেকে পুনরুদ্ধার করব?


17

আমি ফাইলজিলায় ভুল করে একটি ফোল্ডারকে অন্যটিতে টেনে আনি।

~/big_folder
~/some_other_folder

ফোল্ডারটি সরানো হয়েছে খুব বিশাল একটি। এটি কয়েক হাজার ফাইল অন্তর্ভুক্ত করে (নোড_মডিউলস, ছোট ইমেজ ফাইলগুলি, প্রচুর ফোল্ডার)

কী অদ্ভুত তা হ'ল আমি আমার মাউস ছেড়ে দেওয়ার পরে, মুভিংটি শেষ হয়ে গেছে। "বড়_ফোল্ডার" ফোল্ডারটি "কিছু_আর_ফোল্ডার" এ সরানো হয়েছে।

~/some_other_folder/big_folder

(কিছু নেই big_folderমধ্যে ~/চলন্ত পর)

তারপরে আমি ভুলটি উপলব্ধি করে আবার সরে যাওয়ার চেষ্টা করেছি তবে এটি ফাইলজিলা এবং টার্মিনাল উভয় ক্ষেত্রেই ব্যর্থ।

তারপরে আমাকে cp -rফাইলগুলি আবার অনুলিপি করতে হবে কারণ সেখানে files ফাইলগুলিতে অ্যাক্সেস করে সার্ভার-সাইড কোড রয়েছে~/big_folder

এবং অপেক্ষা করা চিরকালের মতো লাগে ...

আমার কি করা উচিৎ?

বিটিডাব্লু, এখানে ফাইলজিলা থেকে আউটপুট (এটি পিছনে সরে যাওয়ার ব্যর্থতা):

Status:       Renaming '/root/big_folder' to '/root/some_other_folder/big_folder'
Status:       /root/big_folder -> /root/some_other_folder/big_folder

Status:       Renaming '/root/some_other_folder/big_folder' to '/root/big_folder'
Command:  mv "big_folder" "/root/big_folder"
Error:          mv /root/some_other_folder/big_folder /root/big_folder: received failure with description 'Failure'

37
আহ, ত্রুটি বার্তাগুলির সবচেয়ে দরকারী received failure with description 'Failure',।
ক্যাপ্টেন ম্যান

3
একটি টার্মিনালে যান, এবং কমান্ড টাইপ করুন mv /root/some_other_folder/big_folder /root/big_folder। আপনি কোন ত্রুটি বার্তা পাবেন?
ctrl-alt-delor

আমি সম্ভবত সাথে যাবcp -al
নিমো

1
ওপির mv vs cpপ্রশ্নের সমাধান করা হয়েছে তবে আমি কেন শুনতে শুনতে পছন্দ করব যে তিনি কেন তাত্ক্ষণিকভাবে ফোল্ডারটি এক দিকে চালিত করতে পেরেছিলেন তবে অন্য দিকে নয়।
ব্যবহারকারী 1717828

4
মূলত একই কারণে বইটির একটি অনুলিপি তৈরি করার চেয়ে বইটি অন্য ঘর থেকে অন্য ঘরে সরিয়ে নেওয়া আরও দ্রুত।
ডেভিড রিচার্বি

উত্তর:


63

যদি একটি ডিরেক্টরি একই ফাইলসিস্টেমের (একই পার্টিশন) মধ্যে স্থানান্তরিত হয় , তবে কেবলমাত্র ডিরেক্টরি ফাইলের নামটির নাম পরিবর্তন করা দরকার। ডিরেক্টরি নিজেই ডিরেক্টরিতে প্রবেশের জন্য কোনও ডেটা পরিবর্তন করতে হবে।

ডিরেক্টরিগুলি অনুলিপি করার সময় , প্রতিটি ফাইলের জন্য ডেটা নকল করা দরকার। এর মধ্যে সমস্ত উত্সের ডেটা পড়া এবং গন্তব্যে এটি লেখা জড়িত।

ফাইল সিস্টেমের মধ্যে একটি ডিরেক্টরি স্থানান্তর করার সাথে ডেটাটি গন্তব্যে অনুলিপি করা এবং উত্স থেকে অপসারণ করা জড়িত। এটি একটি একক ফাইল সিস্টেমের মধ্যে ডেটা অনুলিপি (অনুলিপি করা) হিসাবে প্রায় সময় নিতে পারে।


FileZilla সফলভাবে থেকে ডিরেক্টরির নতুন নামকরণ যদি ~/big_folderকরতে ~/some_other_folder/big_folder, তাহলে আমি প্রত্যাবর্তন করবে ব্যবহার

mv ~/some_other_folder/big_folder ~/big_folder

... প্রথম তৈরীর কোনো সংগ্রহ নেই নামক ছিল নিশ্চিত যে পরে ~/big_folder(যদি ছিল পদক্ষেপ করা হবে big_folderথেকে some_other_folderমধ্যে ~/big_folderএকটি subfolder যেমন ডিরেক্টরি)।


6
ওহ ... এ কারণেই কেন আমি আউটপুটে "মুভিং" না করে "নাম পরিবর্তন" শব্দটি দেখছি?
এজামপ্লেয়ার

2
পছন্দ করুন
কুসালানন্দ

4
@AgamePlayer "ব্যর্থতা" দুর্ভাগ্যক্রমে একটি ভাল ত্রুটির বর্ণনা নয়। হোম ডিরেক্টরিতে mv ~/some_other_folder/big_folder ~/অন্য কোনও নেই তা নিশ্চিত করার পরে আমি ব্যবহার করতাম big_folder। আমি কখনও ফাইলজিলা ব্যবহার করি নি।
কুসালানন্দ

10
ইউনিক্সে কিছু ফাইল রক্ষণাবেক্ষণ করার জন্য উইন্ডোজ জিইউআই সরঞ্জামগুলির উপর নির্ভর না করার আরেকটি কারণ।
মার্ক স্টুয়ার্ট

4
@ মার্কসটওয়ার্ট আপনার মন্তব্যের শেষে "ইউনিক্সে" কেন ?; একটি সময় আছে যখন এটি একটি ভাল ধারণা?
ctrl-alt-delor

11

বিদ্যমান উত্তরটি দুর্দান্ত, তবে আপনি যখন কোনও ফাইল অনুলিপি করছেন যখন আপনি বনাম চলেছেন ঠিক কী ঘটছে তা দেখিয়ে আমি এটিতে কিছুটা প্রসারিত করতে চাই। যখন আপনি একটি অনুলিপি চলাকালীন সিস্কলগুলি দেখুন, আপনি দেখতে পাবেন:

open("hello1.txt", O_RDONLY)               = 3
open("hello2.txt", O_WRONLY|O_CREAT, 0644) = 4
read(3, "Hello, world!\n", 4096)           = 14
write(4, "Hello, world!\n", 14)            = 14
close(3)                                   = 0
close(4)                                   = 0

এটি উত্স ফাইলটি খুলবে, তারপরে একটি দ্বিতীয় ফাইল তৈরি করবে। এরপরে এটি উত্স ফাইলের সামগ্রীগুলি মেমোরিতে পড়ে এবং সেই মেমরিটিকে গন্তব্য ফাইলে লেখে। এর জন্য বেশ কয়েকটি প্রসঙ্গের স্যুইচ এবং কিছু ডিস্ক আই / ও দরকার হয় যা বড় ফাইলগুলির জন্য বেশ উচ্চ হতে পারে। আপনি যদি কোনও ফাইল সরান তবে আপনি দেখতে পাবেন:

rename("hello1.txt", "hello2.txt")         = 0

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


ওপি একটি ডিরেক্টরি সরল, একটি ফাইল নয়।
এএল

এটি এখনও প্রয়োগ করে না, যদি না ওপি খালি ফোল্ডারগুলি না সরায়, তবে এটি কেবলমাত্র কোনও ক্ষেত্রেই জড়িত না
গ্লাস

@ ইউলিক্স-মতো সিস্টেমে সমস্ত কিছুই একটি ফাইল।
থাগস

@AL একটি পাঠ্য ফাইল কেবল একটি উদাহরণ ছিল। ডিরেক্টরিতে কেবল পার্থক্য হ'ল আপনার কাছে কিছু কল getdents()এবং mkdir()চারপাশে ছিটানো।
বন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.