এমভি ফাইল | xargs


18

আমি কেবল আমার / ইত্যাদি / অ্যাপাচি / সাইটগুলি সক্ষম ফোল্ডারটি / etc / অ্যাপাচি / সাইট-উপলব্ধ ফোল্ডারে নিম্নলিখিত ফাইলগুলির সাথে একগুচ্ছ ফাইলগুলি (সিমলিঙ্কগুলি নয়) সরানোর চেষ্টা করছি:

/etc/apache2/sites-enabled$ find . -maxdepth 1 -type f | xargs mv {} ../sites-available/

তবে আমি একজন উবুন্টু n00b এবং এই ত্রুটিটি পাচ্ছি:

mv: target `./real-file' is not a directory

যেখানে 'রিয়েল-ফাইল' একটি টেস্ট ফাইল যা আমি আমার দেব পরিবেশে সেট আপ করেছি। আমি একটি প্রোডাকশন সার্ভারে অন্য কারও গণ্ডগোল পরিস্কার করার চেষ্টা করছি ;-)

উত্তর:


27

আপনি কমান্ড দিয়ে -execবিকল্পটি চেষ্টা করতে পারেন find,

/etc/apache2/sites-enabled$ sudo find . -maxdepth 1 -type f -exec mv {} /etc/apache2/sites-available \;

রুটের মালিকানাধীন ফাইলগুলি সরিয়ে নেওয়ার জন্য আপনার sudoঅনুমতি দরকার ।

আপনি যদি xargsকমান্ডটি ব্যবহার করতে চান তবে এতে -Iবিকল্পটি যুক্ত করুন ।

find . -maxdepth 1 -type f | sudo xargs -I {} mv {} /etc/apache2/sites-available/

7

আদর্শভাবে আপনার সন্ধানের সাথে -প্রিন্ট 0 ব্যবহার করা উচিত, যাতে স্পেসযুক্ত ফাইলের নামগুলি জিনিসগুলি স্ক্রু করে না।

যেমন এটি কাজ করা উচিত:

find . -whatever-flags-go-here -print0 | xargs -r0 mv -t target-directory

0

আপনি একই অনুষ্ঠানের জন্য অন্য একটি উপায় ব্যবহার করতে পারেন তবে অতিরিক্ত পারফরম্যান্স সহ :

find . -maxdepth 1 -type f -exec mv {} /etc/apache2/sites-available \+

নোট করুন যে এটির \+ফলাফলটি আউটপুট পেতে এবং {}যা চান তা করার ক্ষেত্রে প্রসারিত করার অর্থ যার সাথে শেষ হয় , আপনি দুটি বিকল্প এড়াতে পারবেন ( \;= প্রতিটি প্রবেশের জন্য এবং একটি নতুন কমান্ডে পাইপিং xargs)

এখানে ব্যাখ্যাটি দেওয়া হয়েছে (আপনি ম্যানুয়ালটিও পরীক্ষা করতে পারেন man find)

-exec কমান্ড {} + -exec ক্রিয়নের এই রূপটি নির্বাচিত ফাইলগুলিতে নির্দিষ্ট কমান্ড চালায়, তবে প্রতিটি নির্বাচিত ফাইলের নাম শেষে অন্তর্ভুক্ত করে কমান্ড লাইনটি নির্মিত হয়; কমান্ডের অনুরোধের মোট সংখ্যা মিলিত ফাইলগুলির সংখ্যার তুলনায় অনেক কম হবে। কমান্ড লাইনটি একইভাবে নির্মিত হয়েছে যেমন xargs তার কমান্ড লাইনগুলি তৈরি করে। কমান্ডের মধ্যে '{}' কেবলমাত্র একটি উদাহরণ অনুমোদিত। কমান্ডটি প্রারম্ভিক ডিরেক্টরিতে কার্যকর করা হয়।

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