একসাথে একাধিক ফাইল নির্দিষ্ট গন্তব্য ডিরেক্টরিতে কীভাবে সরানো যায়?


152

আমি কিছু ডিরেক্টরিতে (অন্য অনেক ফাইলের সাথে) ফাইলগুলি গুছিয়েছিলাম যা আমি স্থানান্তরিত করতে চাই।

ভাগ্যক্রমে, আমি যে সমস্ত ফাইল সরিয়ে নিতে চাইছি সেগুলির নামগুলিতে একটি নির্দিষ্ট সনাক্তকারী থাকে, তাই আমি ls | grep IDENTIFIERসরানোর জন্য ফাইলগুলির সঠিক তালিকা পেতে পারি ।

তবে, আমি কীভাবে mv file /path/to/dest/folder/একবারে কার্যকর করতে পারি , এবং একের পর এক নয় (সরানোর জন্য অনেকগুলি ফাইল রয়েছে)?

উত্তর:


100

আপনি যদি সরতে চান ABC-IDENTIFIER-XYZ.extবা IDENTIFIER-XYZ.xml, আপনি ব্যবহার করতে পারেন:

mv *IDENTIFIER* ~/YourPath/

*জন্য একটি ওয়াইল্ড কার্ড হয় শূন্য বা তার বেশি অক্ষরের , এর মানে হল শূন্য বা তার বেশি অক্ষরের , দ্বারা অনুসরণ IDENTIFIER, দ্বারা অনুসরণ শূন্য বা তার বেশি অক্ষরের

এই সব ফাইল সরানো হবে ধারণIDENTIFIER আপনার নির্দিষ্ট করা।


201

আপনি ব্যবহার করতে পারেন

mv -t DESTINATION file1 file2 file3

এবং

mv -t DESTINATION `ls|grep IDENTIFIER`

কাজ করে তবে আমি নিশ্চিত না যে এমভি একাধিকবার আহ্বান জানানো হয়েছে বা গ্রেপ হিসাবে প্রতিটি ম্যাচের জন্য একটি নতুন লাইন আউটপুট দেবে।


5
লিনাক্সে কাজ করে, এটি ম্যাকের জন্য কাজ করবে কিনা তা নিশ্চিত নয়
আলেকজান্ডার মিলস

3
উইন্ডোয়ের জন্য গিটের মাধ্যমে ম্যাক এবং গিট ব্যাশে কাজ করে।
ব্র্যান্ডেট সলোভিজ

11
ম্যাক (10.11.16 এল ক্যাপিটান) এ কাজ করে না। তবে আপনি কেবল লক্ষ্য ফোল্ডারটি পিছনে রাখতে পারেন, যেমনmv file1 file2 ... destination
শেলজহান

2
-1 দ্বিতীয় পদ্ধতির জন্য এটি নতুন লাইন
нιη


24

আপনি ওয়াইল্ডকার্ড ব্যবহার করতে পারেন ।

উদাহরণ: এক্সটেনশন। ডক থাকা সমস্ত ফাইল সরানো

mv *.doc /path/to/dest/folder/

এটি বর্তমান ডিরেক্টরিতে সমস্ত ডক ফাইলকে নির্দিষ্ট গন্তব্যে নিয়ে যাবে।

সম্পাদন করা

মন্তব্যের জবাব দিতে।

mv *.ext *.xml *.txt /path/to/dest/folder/


2
তবে স্থানান্তরিত ফাইলগুলির তালিকাটি এক্সটেনশন দ্বারা নির্ধারিত হয় না। কিছু ফাইলের নাম দেওয়া হয়েছে: ABC-IDENTIFIER-XYZ.extএবং কয়েকটি কেবলমাত্র IDENTIFIER-XYZ.extআলাদা আলাদা এক্সটেনশন রয়েছে, বেশিরভাগই xmlবা properties
গিলাদ হচ

@ গিলাধচ সম্পাদিত সম্পর্কে কীভাবে?
আছু

@ গ্লিয়াধচ আপনি যদি গ্রেপ ব্যবহার করে খুব স্বাচ্ছন্দ্য বোধ করেন তবে আমার উত্তর উপরে / নীচে দেখতে পাবেন।
প্রজ্বলিত

অন্যান্য .xmlফাইল আছে (যেমন উদাহরণস্বরূপ) আমি স্থানান্তরিত করতে চাই না কাজ করবে না ।
গিলাদ হচ

20

আপনি যদি অপ্রাসঙ্গিক ফাইলের একটি সেট (নাম এবং প্রকারের কোনও সাধারণ প্যাটার্ন) নড়াচড়া করতে চান তবে মিঃ রাজনানন্দ বলেছিলেন: আপনি প্রথমে যে ডিরেক্টরিতে যেতে চান সেই ফাইলগুলিতে সেই ডিরেক্টরিতে যান

mv file1.ext1 file2.ext2 file3.ext3.. /destination/

ফাইলগুলি বিভিন্ন ডিরেক্টরিতে ছড়িয়ে ছিটিয়ে থাকলে, আপনাকে কেবল মুভ কমান্ডের প্রতিটি ফাইলের জন্য পাথ নির্দিষ্ট করতে হবে


10

আমি টিউমাজের কৌশলটি ব্যবহার করি তবে কিছুটা সংশোধন করেছি:

mv file1 file2 file3 -t DESTINATION

আমি এটি মনে রাখা সহজ এবং স্ক্রু করা আরও কঠিন বলে এটি ভ্যানিলা এমভি অপারেশনের মতো একই ক্রম ব্যবহার করে:

mv file1 DESTINATION

ম্যান পেজ mvকোনও -tবিকল্পের উল্লেখ করে না ।
Noumenon

2
linux.die.net/man/1/mv হ্যাঁ এটি করে
geoyws

7

এই আদেশটি ব্যবহার করুন:

mv `ls|grep IDENTIFIER` /path/to/dest/folder  

তবে এই ধরণের ব্যবহারের জন্য এলএস বাঞ্ছনীয় নয়। ব্যবহার করুন এটি বদলে কমান্ড।


8
lsএই ধরণের ব্যবহারের জন্য প্রস্তাবিত নয়। আপনি যদি ফাইলগুলি তালিকাভুক্ত করতে চান, বিশেষত grepপিছনে দিয়ে, ব্যবহার করুন find . -name \*IDENTIFIER\*
নরটিকস

এই উত্তরটি কেবল আপনি এমভিতে পূর্ববর্তী কমান্ডের আউটপুট কীভাবে ব্যবহার করতে পারবেন তা প্রদর্শনের জন্য ছিল was প্রশ্নে ls | গ্রেপ হিসাবে উল্লেখ করা হয়েছিল, আমি কেবল এটি অনুলিপি করেছি।
প্রজ্বলিত

3
@NorTicUs দ্বারা উল্লিখিত হিসাবে, ls এর ব্যবহারের পরামর্শ দেওয়া খারাপ। এছাড়াও, স্পেস সহ ফাইলগুলি একটি সমস্যার কারণ হতে পারে।
ধানের ল্যান্ডাউ


5

আপনার কাছে সরানোর মতো অনেকগুলি ফাইল থাকলে আপনার কাছে mvকমান্ডের (বা অন্যান্য কমান্ডের মতো rm) জন্য আসলে অনেক বেশি থাকতে পারে । আমি xargsফ্যাশনের মতো লুপে প্রতিটি ফাইল স্বতন্ত্রভাবে সরানো ব্যবহার করার পরামর্শ দিই । এটিকে ঘুরে দেখার এক উপায় হ'ল:

ls -1 | grep IDENTIFIER | xargs -i mv {} /path/to/dest/folder/

ls -1(বিয়োগ একটি) নিশ্চিত করে প্রতিটি লাইনে শুধুমাত্র একটি ফাইলের নাম নেই। lsকমান্ডটির জন্য যদি আপনার গোপনীয় পরিচয়পত্র থাকে তবে আপনার একক লাইনে একাধিক ফাইলের নাম থাকতে পারে এবং অজান্তেই এমন ফাইল সরিয়ে নিতে পারেন যা আপনি সরিয়ে নিতে চাননি।


আপনার আইডেন্টিফায়ার সহজেই ওয়াইল্ডকার্ডে রূপান্তরিত হয় না, বা আপনি আরও জটিল রেগেক্স সহ গ্রেপ ব্যবহার করতে চান যখন এটি কার্যকর হয়।
অ্যাজিবিবিল

1
Xargs জন্য +1। এলএসের চেয়ে প্রায় সবসময়ই ভাল এবং নিরাপদ খুঁজুন। খুঁজে। আইডেন্টিফায়ার-এক্সেক এমভি {} / পাথ / টু / ডেস্ট / ফোল্ডার \; (অরক্ষিত কোড) বর্তমান ওয়ার্কিং ডিরেক্টরি জন্য। দ্য \; কমান্ড কার্যকর করা হবে। আপনি যা করছেন তার উপর নির্ভর করে আপনাকে সাব-ডিরেক্টরিতে পুনরাবৃত্তি করা থেকে বাঁচতে আপনাকে একটি-ম্যাক্সডেপথ 1 যোগ করতে হতে পারে।
জো

5

ফাইলগুলি একই দিরে থাকলে আপনি ব্যবহার করতে পারেন

mv /path/to/source/dir/{file1,file2,*.ext1,*.ext2} /path/to/destination/

(উবুন্টু 16.04 এ পরীক্ষিত)


1
এটি বিদ্যমান উত্তরগুলিতে সত্যিই কিছু যুক্ত করে না, আপনি কি ভাবেন না?
মিষ্টি

1
প্রতিটি ফাইলের জন্য
ডিরের

3
find -type f -name "[range]" -exec mv {} target-directory ';'

এই কমান্ডটি কোনও প্যাটার্ন / রেঞ্জের সাথে ফাইলের নামগুলিকে লক্ষ্য-ডিরেক্টরিতে সরিয়ে দেবে।

যেমন।

find -type f -name "file[1-50000]" -exec mv {} target-directory ';'

এটি file1, file2... file50000তে নাম সহ ফাইলগুলি সরিয়ে ফেলবে target-directory


2

আপনি lv থেকে এমভি কমনাদে ইনপুট আউটপুট ব্যবহার করতে পারেন

mv $(ls | grep IDENTIFIER) /path/to/dest/dir

কমান্ডটি $()আপনার অনুসন্ধানের সাথে মিলে যাওয়া ফাইলের নামের তালিকা দেয় এবং এটি এমভি কমান্ডের জন্য প্যারামিটার হিসাবে সরবরাহ করা যেতে পারে।



1

এই কমান্ডটি ব্যবহার করে আপনি একাধিক ফাইল সরাতে পারবেন।

mv SourceFilenames ~DestinationPath


1

সবচেয়ে সহজ উপায় এটি এর মত

mv {file1,file2,file3} DESTINATION

বা ডিরেক্টরি

mv {directory1,directory2,directory3} DESTINATION

অথবা ফাইল এবং ডিরেক্টরি উভয়ই

mv {file1,file2,file3,directory1,directory2,directory3} DESTINATION

আশাকরি এটা সাহায্য করবে

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