কমান্ড লাইনটি ব্যবহার করে আমি কীভাবে সমস্ত ফাইল একটি ফোল্ডার থেকে অন্য ফোল্ডারে স্থানান্তর করব?


245

আমি জানতে চাই যে কীভাবে আমি সমস্ত ফাইলকে একটি ফোল্ডার থেকে কমান্ড লাইনের সাহায্যে অন্য ফোল্ডারে স্থানান্তরিত করতে পারি।

ধরা যাক যে আমি আমার ডাউনলোড ফোল্ডারে আছি এবং এখানে 100 টি ফাইল রয়েছে যা আমি আমার ভিডিও ফোল্ডারে সরিয়ে নিতে চাই, সমস্ত ফাইলের নাম না লিখেই।


আপনি আদান-প্রদান সম্পর্কে বলছি filesকিন্তু আপনি যাদের দেখাচ্ছে কিভাবে না শুধুমাত্র সরাতে filesকিন্তু foldersহিসাবে ভাল। এটা কি ঠিক আছে?
আসকার

2
@ হন্টভেরি লেভান্তে এক বছর আগে একটি উত্তর দিয়েছেন যা দেখে মনে হয় এটি সবচেয়ে সেরা, পরিষ্কার, সহজ এবং এটি কার্যকর। তাহলে এটি কীভাবে কেবলমাত্র 3 টি ভোট পেয়েছে (বর্তমানে শীর্ষে থাকা উত্তরের জন্য 262 এর তুলনায়)?
রে বাটারওয়ার্থ

উত্তর:


331

একটি টার্মিনাল খুলুন এবং এই আদেশটি কার্যকর করুন:

mv  -v ~/Downloads/* ~/Videos/

এটি ডাউনলোডগুলি ফোল্ডার থেকে সমস্ত ফাইল এবং ফোল্ডারগুলিকে ভিডিও ফোল্ডারে সরানো হবে।


সমস্ত ফাইল সরানো, তবে ফোল্ডারগুলি না:

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

find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos

ডাউনলোড ফোল্ডারগুলি থেকে কেবল ফাইলগুলি সরানো, তবে সাব-ফোল্ডার থেকে নয়:

আপনি যদি ডাউনলোডগুলি ফোল্ডার থেকে সমস্ত ফাইল সরিয়ে নিতে চান তবে ডাউনলোড ফোল্ডারে ফোল্ডারের মধ্যে কোনও ফাইল নয়, এই কমান্ডটি ব্যবহার করুন:

find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos

এখানে -maxdepthবিকল্পটি সন্ধান করে যে গভীর অনুসন্ধানের চেষ্টা করা উচিত, তার 1অর্থ, কেবলমাত্র অনুসন্ধান কমান্ডে নির্দিষ্ট ডিরেক্টরি। ব্যবহার করে আপনি চেষ্টা করে দেখতে পারেন 2, 3এছাড়াও পরীক্ষা করা হবে।

বিস্তারিত ব্যাখ্যার জন্য উবুন্টু ম্যানপেজটি দেখুন


3
আপনি পুরো ডিরেক্টরিটি অন্য ফোল্ডারে সরিয়ে নিতে একা
এমভি

20
এফওয়াইআই আমি বিশ্বাস করি আপনার প্রথম কমান্ড ("এমভি-ভি ~ / ডাউনলোডস / * ~ / ভিডিও /") ডট ফাইলগুলি সরবে না।
মার্ক ডলিনার

1
হ্যাঁ, এটি। ফাইলগুলি সরবে না
আনোয়ার

3
নম্বর। আপনার -print0 | xargs -0 mv -t ~/Videosআরও দক্ষতার সাথে করা যেতে পারে -exec mv -t ~/Videos \{\} \+:-)
artfulrobot

3
mv -v ~/Downloads/* ~/Videos/লুকানো ফাইলগুলির জন্য কাজ করে না
ফ্রিলাইটম্যান

28
mv ~/Downloads/* ~/Videos

এটি আপনার যে ডিরেক্টরিতে চান সেটি সাবফোল্ডার সহ সমস্ত ফাইল সরিয়ে ফেলবে mv। আপনি cp(অনুলিপি) বা rm(অপসারণ) করতে চাইলে আপনার -rসাবফোল্ডারগুলি অন্তর্ভুক্ত করার জন্য (পুনরাবৃত্ত) বিকল্পের প্রয়োজন হবে ।


2
আমার এমভি কমান্ডটিতে একটি -আর বিকল্প নেই (উবুন্টু 14.04)।
মার্ক ডলিনার

1
@ মার্কডোলিনার, হ্যাঁ, mvসাবফোল্ডারগুলি অন্তর্ভুক্ত করার জন্য পুনরাবৃত্তির বিকল্পের প্রয়োজন নেই। পুনরায় নামকরণের জন্যও এটি ব্যবহার করতে পারেন।
অ্যালেন

আমার দরকার নেই *। তারকা ব্যবহার না করে একই জিনিস ঘটেছিল।
মাইক্রোফডি

ফোল্ডার নামের উপসর্গটিতে always / সর্বদা কাজ করে না (ব্যাশ এবং গিট এটেলস্টে কাজ করে না)
কৃষ মুনোট

উত্স ডিরেক্টরিটি ফাঁকা থাকলে এই সমাধানটি একটি ত্রুটি দেয়।
পিয়েরে থিবল্ট

11

সাধারণ ক্ষেত্রে:

mv ~/Downloads/* ~/Videos

আপনি যদি ডট (লুকানো) ফাইলগুলিও সরাতে চান তবে ডটগ্লোব শেল বিকল্পটি সেট করুন ।

shopt -s dotglob
mv ~/Downloads/* ~/Videos

এটি শেল বিকল্প সেট ছেড়ে দেয়।

ডটগ্লোব একবার ব্যবহারের জন্য সাব-শেলের কমান্ডগুলি চালান:

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)

আমার জন্য একটি নোট: শেষ বিকল্পটি (shopt -s dotglob; mv ~/Downloads/* ~/Videos) কেবলমাত্র (লুকানো ফাইলগুলি সহ) সামগ্রীগুলি সরায় (কাটবে)। এই ক্ষেত্রে, মূল এবং গন্তব্য ফোল্ডার উভয়ই ইতিমধ্যে বিদ্যমান থাকতে হবে। শেষে, মূল ডিরেক্টরিটি খালি হয়ে যায়।
প্যাথ্রোস

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত
মেগার

11

এটি ব্যবহার করে সম্ভব rsync, উদাহরণস্বরূপ:

rsync -vau --remove-source-files src/ dst/

কোথায়:

-v, --verbose: ভার্বোসটি বাড়ান।

-a, --archive: সংরক্ষণাগার মোড; সমান -rlptgoD(কোন -H, -A, -X)।

-u, --update: রিসিভারে নতুন যে ফাইলগুলি এড়িয়ে যান।

--remove-source-files এটি rsyncপ্রেরণের দিক থেকে ফাইলগুলি (নন-ডিরেক্টরিগুলি) অর্থ স্থানান্তরের একটি অংশ এবং প্রাসঙ্গিক দিকটিতে সফলভাবে সদৃশ হয়ে গেছে তা অপসারণ করতে বলে ।

যদি আপনি মূল সুবিধাগুলি থেকে থাকেন তবে sudoসম্ভাব্য অনুমতি সংক্রান্ত সমস্যাগুলি ওভাররাইড করার জন্য উপসর্গ ।


1
সতর্কবার্তা! উল্লিখিত হিসাবে --delete-after অপশনটি আপনার প্রত্যাশার মতো কাজ করে না। এটি সফল অনুলিপি করার পরে উত্স ফাইলগুলি মুছবে না ... এটি নির্ধারিত সমস্ত চলমান / অন্যান্য ফাইল মুছে দেয় । (যেমন_কেনর্ব উল্লেখ করেছেন ... তবে আমি যথেষ্ট মনোযোগ সহকারে পড়িনি! ডিওএইচ)
জে মার্ম

4

ব্যবহার

mv -v ~/rootfolder/branch/* ~/rootfolder

আশা করি এটা কাজে লাগবে. কারণ আমারও একই ব্যথা ছিল এবং আমার ভুল সংশোধন করতে অনেক সময় নষ্ট করতাম।


2

কোনও ডিরেক্টরিকে নতুন নামে কনটেন্ট সহ বা ছাড়াই সরানো, আপনি কীভাবে mvকোনও ফাইলের নাম পরিবর্তন করতে আদেশটি ব্যবহার করবেন :

mv -T dir1 dir2

কোথায়:

  • -T গন্তব্যটিকে একটি সাধারণ ফাইল হিসাবে গণ্য করে
  • dir1 ডিরেক্টরিটির মূল নাম
  • dir2 ডিরেক্টরিটির নতুন নাম

এনবি: dir2অস্তিত্ব আছে না।

আমি আশা করি এটি একটি নুব হিসাবে কারও অনেক সময় সাশ্রয় করে, এর আগে, আমি নতুন নামের সাথে একটি ডিরেক্টরি তৈরি করব এবং তারপরে ডিরেক্টরিটির বিষয়বস্তুগুলি পূর্বে তৈরি ডিরেক্টরিতে স্থানান্তরিত করব।

উপ-ডিরেক্টরিগুলির জন্য ব্যবহার করুন

লক্ষ্য কমান্ডের একটি সাবফোল্ডারে যখন অনেকগুলি ফাইল সংরক্ষণ করা হয় তখন এই কমান্ডটি কার্যকর হয় Downloads/mp4। এই উদাহরণে দৌড়ানোর mv -T Downloads/mp4 Videosফলে mp4সাবফোল্ডার সরানো হবে এবং এর ভিতরে থাকা সমস্ত ফাইল ভিডিও ফোল্ডারে সরানো হবে।


1
+1 কারণ জুবুন্টু 14.04 এ কাজ করার পরীক্ষা করেছে। এই কমান্ডটি dir1মুছে ফেলার কারণ দেখাবে তা দেখাতে আমি এই উত্তরে একটি উদাহরণ যুক্ত করেছি। এই সতর্কতা বাদে, এই উত্তরটি প্রতিদিনের ব্যবহারের জন্য ভাল কিছু উল্লেখ করেছে।
ক্লিয়ারকিমুড়া

1
"কন্টেন্টের সাথে বা এটির কোনও নতুন ডিরেক্টরিতে কোনও ডিরেক্টরি স্থানান্তরিত করতে" আপনি কীভাবে একটি ডিরেক্টরি ... একটি নামের সাথে স্থানান্তর করতে পারেন? ওটা কোন অর্থ প্রকাশ করে না. "-T গন্তব্যটিকে একটি সাধারণ ফাইল হিসাবে গণ্য করে" গন্তব্য একটি ফাইল কীভাবে হতে পারে? আপনি কি ডিরেক্টরি বলতে চান?
মনিকা হেডনেক

এটি ফাইলের নতুন নামকরণের মতো এটির মতো আপনি যেমন কিছু করেন mv fileA fileBতবে -Tএই ক্ষেত্রে পতাকাটি গন্তব্য / ডিরেক্টরিটিকে একটি ফাইল হিসাবে বিবেচনা করে এবং নাম পরিবর্তন করে।
Feyisayo Sonubi

আমার জন্য কাজ করেছেন :)
নবীন কুমার ভি

1
  1. কমান্ড লাইনে যান এবং যে ডিরেক্টরিটিতে এটিতে যেতে চান সেই ডিরেক্টরিতে যান cd folderNamehere
  2. প্রকার pwd। এটি আপনাকে যে ডিরেক্টরিটি এটি সরাতে চায় তা মুদ্রণ করবে।
  3. তারপরে ডিরেক্টরিটিতে পরিবর্তন করুন যেখানে সমস্ত ফাইল রয়েছে cd folderNamehere
  4. এখন সমস্ত ফাইল সরানোর জন্য টাইপ করুন mv *.* typeAnswerFromStep2here

এটি সেই ডিরেক্টরি থেকে সমস্ত ফাইল সরানো হবে move


3
এটি কোনও এক্সটেনশন ছাড়াই ফাইলগুলির সাথে মেলে না। উদাহরণস্বরূপ একটি ফোল্ডার ফাইলের নামে আছে যদি: foo.txt, bar.এবং barউভয় bar.এবং barসরানো হবে না। *পরিবর্তে ব্যবহার করা *.*তার যত্ন নেয়। তবে উভয় ক্ষেত্রেই লুকানো ফাইলগুলি: .foobarসরানো হবে না।
ড্যান

1
mv source_path/* destination_path/

এখানে আপনাকে স্ল্যাশ এবং *উত্স পথের পরে রাখতে হবে যাতে এটি সম্পূর্ণ উত্স ডিরেক্টরিের পরিবর্তে উত্স_পথের মধ্যে ফাইলগুলি নিয়ে যায়।

উদাহরণ: mv /home/username/test/* /home/username/test2/

উপরের কমান্ডটি উত্স ডিরেক্টরিতে সমস্ত ফাইল (সেগুলি লুকানো না থাকলে) গন্তব্য ডিরেক্টরিতে স্থানান্তরিত করে।


0

এটি চেষ্টা করুন

find ~/Desktop -type f -iname  "*.mp4" -exec mv {} ~/Videos \;

-আর্গুমেন্টের সাথে টাইপ করুন- টাইপ আপনি টাইপ ফাইলটি নির্দিষ্ট করতে পারেন এই বিবৃতিতে গড় ফাইল.আইফ বলতে -d এর অর্থ ডিরেক্টরি ব্যবহার করে।

-নাম: কোনও ফাইল সন্ধানের জন্য সর্বাধিক সাধারণ এবং স্পষ্ট পদ্ধতিতে এর-নাম যুক্তি ব্যবহার করা হয় if আপনি যদি এর কেস-সংবেদনশীলতা সম্পর্কে নিশ্চিত নন তবে আপনি নামটি যুক্তি ব্যবহার করতে পারেন

এমভি {} এবং অবশেষে লক্ষ্য ডিরেক্টরি নির্দিষ্ট করতে এবং তারপরে এমভি {} আর্গুমেন্ট ব্যবহার করে ফাইলগুলি সেখানে সরানো

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