এমভি: ডিরেক্টরি খালি নেই


155

আমি একই ফোল্ডারগুলির সাথে একটি ডিরেক্টরিতে অন্য ডিরেক্টরিতে স্থানান্তর করতে চাই।

এখানে একটি উদাহরণ:

আমার কাছে ./backupডিরেক্টরি রয়েছে baseএবং test। এখন আমি এই ডিরেক্টরিগুলি সরাতে চাই ./backupArchives

আমি এটি ব্যবহার:

mv ./backup/* ./backupArchives

কিন্তু আমি ত্রুটি পেয়েছি

mv: cannot move './backup/base' to './backupsArchive/base': Directory not empty

আমি চেষ্টা করার চেষ্টা করেছি --force, কিন্তু ভাগ্য নেই। ফোল্ডারগুলি ইতিমধ্যে উপস্থিত থাকলে কী সরানোর কোনও উপায় আছে?

দ্রষ্টব্য: আমি কেবল সামগ্রীগুলি মার্জ করতে চাই, সেখানে কোনও ওভাররাইটিং নেই।


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

আমি কেবল বিষয়গুলি মার্জ করতে চাই, সেখানে কোনও ওভাররাইটিং নেই।
উদকে

2
@ ইউডকে এমনকি এটি কার্যকর হলেও, লক্ষ্য রাখবেন যে এটি দুটি ডিরেক্টরিতে লিখিত সামগ্রীকে একীভূত করবে না । ডিরেক্টরি সরানো তার লক্ষ্যটিকে প্রতিস্থাপন করবে। rsyncপরিবর্তে একবার দেখুন , এটি মার্জ করবে।
zwets

উত্তর:


188

যদিও এর ম্যান পৃষ্ঠাটি এটি নথিভুক্ত করেছে না, mvযদি লক্ষ্য ডিরেক্টরিতে ফাইল থাকে তবে কোনও ডিরেক্টরিকে অন্য ডিরেক্টরিতে নামকরণ করতে অস্বীকার করবে। এটি আপনার ক্ষেত্রে ভাল জিনিস কারণ আপনি উত্সের সামগ্রীটি লক্ষ্যকে মিশ্রিত করতে চান , যা mvনা করে।

rsync -a backup/ backupArchives/পরিবর্তে ব্যবহার করুন। তারপরে rm -rf backup/*

পরিবর্তে ব্যবহার করার পরিবর্তে rsync, আপনি ক্লাসিকালও করতে পারেন

(cd backup && tar c .) | (cd backupArchives && tar xf -)

যা আপনাকে আরও গিক পয়েন্ট অর্জন করে।


4
জেনে রাখা সুন্দর জিনিস! দুজনেই দুর্দান্ত কাজ করছে। এর ধন্যবাদ!
উদকে

5
গিক পয়েন্ট সেরা পয়েন্ট: ডি
ম্যাডমাইক

2
লক্ষ করা উচিত এটির জন্য আপনার ফাঁকা জায়গায় ফোল্ডারের আকার থাকতে হবে। এবং না হলে ভয়াবহ সমস্যা সৃষ্টি করবে।
পোগরিন্ডিস 21

4
@ পোগ্রিন্ডিস দয়া করে ব্যাখ্যা করুন কী কোন ভয়াবহ সমস্যা দেখা দেবে এবং পুরো ডিস্কে লেখার অন্য যে কোনও প্রচেষ্টা থেকে তারা কীভাবে আলাদা? আসলে, যেহেতু উভয় অপারেশনই মূল ডিরেক্টরিটি অক্ষুণ্ন রাখে, যদি অপারেশনটি আপনাকে rm -rf backupArchivesকোনও পরিণতি ছাড়াই ব্যর্থ হয় , তবে 'ভয়ঙ্কর' বিষয়গুলি ছেড়ে দিন।
zwets

4
শাস্ত্রীয় পদ্ধতির নামকরণের জন্য ধন্যবাদ, যদি আরএসসিএনটি পাওয়া না যায় তবে খুব সহায়ক! এছাড়াও সুডো ব্যবহার করে কাজ করেsudo sh -c '(cd backup && tar c .) | (cd backupArchives && tar xf -)'
আরেন্ডে

39

দ্রুত এবং নোংরা, আপনি যদি জানেন যে আপনি কী করছেন:

cp -r ./backup/* ./backupArchives && rm -R ./backup/*

3
আমার নিরাপদ মোডে কাজ করে, জেনিয়েন।
নিষিদ্ধ_ইউজার

4

আপনার যে ডিরেক্টরিটি সরানোর প্রয়োজন হবে তার পরে *(যে কোনও পাঠ্য বা সংখ্যা উপস্থাপন করে)। উদাহরণ স্বরূপ:

mv /var/www/* /recovery/wwwrecovery/

আপনি যতক্ষণ ফাইল সরিয়ে নিয়ে যাচ্ছেন, তার চেয়ে বেশি হ'ল:

mv /var/www/index.php /recovery/index.php

আর একটি উপায় হ'ল তার ব্যবহার করে সেই ফোল্ডার সামগ্রীটি প্যাক করা:

tar -cvzpf backup.tar.gz /var/www 

তারপরে এটিকে অন্য কোনও ফাইলের কাছে রাখুন। এছাড়াও আমি এই পদক্ষেপটি সুপারিশ করি কারণ টার এটি সংকুচিত করে এবং এটি আকারে আরও ছোট করে।

ফাইলগুলি অন্য ফোল্ডারে ব্যবহার করতে

tar -xvzpf /var/www/

যদি আপনার নিজের মালিকানা নেই এমন কোনও স্থানে অনুলিপি করতে হয়, sudoআপনি যে কোনও বিকল্প ব্যবহার করার সিদ্ধান্ত নেওয়ার পরে কমান্ডটি দিয়ে আপনার কমান্ডটি প্রিপেন্ড করতে ভুলবেন না ।

sudo tar -cvzpf backup.tar.gz /var/www/

আমি উবুন্টু 12.10 ব্যবহার করছি এবং আমি পেয়েছি: এমভি: অবৈধ বিকল্প - আরও তথ্যের জন্য 'আর' চেষ্টা করুন `এমভি - সহায়তা। প্রকৃতপক্ষে .tarটি দুর্দান্ত, তবে এই পরিস্থিতির জন্য আমার ফাইলগুলি কীভাবে সরানো যায় তা আমার জানা দরকার। আপনার সহায়তার জন্য ধন্যবাদ
উদার

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

কি থা ..... সেই ফাইলের নামটি বেটউইনে রেখে দিন **
দিমিত্রিস থিওডোরিডিস

1
এটি -Rঅবশ্যই প্রথম যুক্তির পরে আসা উচিত নয়। বিকল্পগুলি (প্রায়) সর্বদা কমান্ড আর্গুমেন্টের আগে থাকে। এছাড়াও, mvকোনও -Rবিকল্প নেই, এবং পরিশেষে, পুনরাবৃত্তি a এর সাথে অপ্রাসঙ্গিক mv। @ ডিমিত্রিসহোডরিডিস দয়া করে প্রথমে আপনার উত্তরটি পরীক্ষা করুন।
zwets

হ্যাঁ আমার ভাই আপনি ঠিকই বলেছেন, আমার বানান নিয়ে আমার সর্বদা সমস্যা হয় এবং আমি এর জন্য টার্মিনাল নিয়ে সমস্যা করি বা কমান্ডটি খুঁজে পাওয়া যায় না বা নতুন ফাইল এবং ডিরেক্টরিগুলি তৈরি করি যা আমি জানি না, কেবল বেস বানানের জন্যই ... এখানে সিপি কমান্ড ব্যবহার করা হয়েছে, তার চেয়েও এই ব্রের জন্য এমভি সোর লিখেছেন: ডি
দিমিত্রিস থিওডোরিডিস

4

শিওর rsyncকাজ করে, তবে এটি মেশিনের rsyncপক্ষেও কাজ করতে পারে যা সমর্থন করে না (যেমন সিপ্যানেলে, যা ডিফল্টরূপে আরএসসিএন ইনস্টল করা নেই)।

ব্যবহার সম্পর্কে কি:

cd /path/to/backup/ && cp -R --parents ./* ../backupArchives

তারপরে backupপ্রয়োজনে ডিরেক্টরিটি সরান

নোট 1: এক্সিকিউট করার আগে cdআপনাকে backupডিরেক্টরিতে যেতে হবেcp -R --parents ...

দ্রষ্টব্য 2: backupArchivesব্যাকআপ থেকে নতুন ফাইলগুলি পেয়ে গেলে ডিরেক্টরিটি ডাবল চেক করুন ।


1

প্রশ্ন জিজ্ঞাসার আগে, আসুন একটি সরল কেস বিবেচনা করা যাক।

ধরুন / হোম / অ্যাডমিনে আমাদের দুটি ফোল্ডার রয়েছে fooএবং barযার একই সাব-ডাইরেক্টরি কাঠামো রয়েছে তবে প্রতিটিটিতে এতে আলাদা আলাদা ফাইল রয়েছে। এখন আমরা সেগুলিকে একটিতে মিশতে চাই। আমরা যখন এই জাতীয় জিনিস করি তখন mv foo/* barত্রুটি mv: directory not emptyঘটে।

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

পিএস: আমি প্রত্যেক ফাইল ম্যানেজারের বাইরে পরীক্ষা করিনি। তবে তাদের বেশিরভাগেরই এই বৈশিষ্ট্যটি থাকা উচিত।

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