Name -exec` এবং `xargs` ব্যবহার করার সময় ড্যাশ (" - ") দিয়ে শুরু হওয়া ফাইল নামগুলির সাথে মোকাবিলা করা


2

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

অন্য একটি প্রশ্ন অনুসরণ করে (সার্ভারফল্টে) , আমি এই আদেশটি পরিবর্তনের চেষ্টা করেছি:

shuf -zn8 -e *.jpg | xargs -0 cp -vt -- {} target/ 

অথবা

shuf -zn8 -e *.jpg -exec cp -vt -- {} target/

কোন লাভ নেই। -ফাইলনামের শুরুতে আমি কীভাবে সামলাতে পারি ?


উত্তর:


3

-tবিকল্প (ক গনুহ এক্সটেনশন) একটি আর্গুমেন্ট যা লক্ষ্যবস্তু ডিরেক্টরির বেশি সময় লাগে।

এর সাথে xargs -0 cp -vt -- target/, এটি target/ডাকা ডিরেক্টরিতে নির্বাচিত ফাইলগুলি অনুলিপি করার চেষ্টা করবে --এবং আপনি এখনও বিকল্পগুলির শেষ চিহ্নিত না করে থাকতে পারেন। আপনার shufপাশাপাশি বিকল্পগুলির শেষটি চিহ্নিত করতে হবে ।

{}এটি কেবলমাত্র find' -execপ্রিডিকেট ' বা বিশেষত xargsআপনি যদি ব্যবহার করেন -I'{}'তবে তা বিশেষ is shufকোন হয়েছে -execসম্পৃক্ত।

এখানে, আপনি চাইবেন:

shuf -zen8 -- *.jpg | xargs -r0 cp -vt target --

অথবা

shuf -zen8 ./*.jpg | xargs -r0 cp -vt target

এর সাথে zsh, আপনি এর eএক্সপ্রেশন ভিত্তিক oরডারিং গ্লোব কোয়ালিফায়ার ব্যবহার করতে পারেন :

cp -v -- *.jpg(oe['REPLY=$RANDOM'][1,8]) target/

যে shufকোনও সিস্টেমে কাজ করার পদ্ধতির উপর এটির সুবিধা রয়েছে (সরবরাহিত zshইনস্টলড; আপনাকে -vকয়েকটি সিস্টেমে অ-মানক ছাড়তে হবে) এবং jpgবর্তমান ডিরেক্টরিতে দুটি ফাইল থাকা সত্ত্বেও এখনও কাজ করতে হবে (এবং কার্যকর করার shufফলে অনেকগুলি তর্ক ত্রুটির সাথে ব্যর্থ হবে )।


4

দেখে মনে হচ্ছে এটা কেমন shufনা cpযা ফাইলের নামের একটি ড্যাশ দিয়ে শুরু সঙ্গে সংগ্রাম করা হয়। shufকমান্ডটিতে ডাবল-ড্যাশ যুক্ত করার চেষ্টা করুন :

shuf -zn8 -e -- *.jpg | xargs -0I{} cp -vt -- "{}" target/ 

আমি এটির findপরিবর্তে এর জন্য ব্যবহার করব shuf:

find . -type f -name '*.jpg' -print0 | xargs -0I{} cp "{}" target/

এছাড়াও cpএই ক্ষেত্রে আপনার ডাবল ড্যাশ লাগবে না কারণ উপসর্গযুক্ত findফাইলের ./নামটি ফিরে আসবে ।


findএলোমেলো ফাইল বা প্রথম ফাইলগুলি অনুলিপি করবে ?
— হাওয়ভোক

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