আমার বোধগম্যতা থেকে নীচেরগুলির অর্থ হুবহু একই:
ls -1 | xargs file {}
ls -1 | xargs -I{} file {}
যদি -I বিকল্পটি নির্দিষ্ট না করা থাকে তবে এটি -I {} এ ডিফল্ট হয়}
আমি বর্তমান ডিরেক্টরিতে সমস্ত ফাইল তালিকাভুক্ত করতে চাই এবং সেগুলির file
প্রতিটিতে কমান্ড চালাতে চাই । কারও নামে ফাঁক রয়েছে। তবে, আমি পার্থক্য লক্ষ্য করেছি। নিচে দেখ:
$ ls -1
Hello World
$ ls -1 | xargs file {}
{}: ERROR: cannot open `{}' (No such file or directory)
Hello: ERROR: cannot open `Hello' (No such file or directory)
World: ERROR: cannot open `World' (No such file or directory)
$ ls -1 | xargs -I{} file {}
Hello World: directory
-আই {} স্পষ্টভাবে সুনির্দিষ্টভাবে উল্লেখ করা হয়েছে, ফাইলের নাম ফাঁকাগুলি প্রত্যাশিত হিসাবে বিবেচিত হবে।
xargs file
বা হয় নির্দিষ্ট করা উচিত xargs -I{} file {}
। হওয়া উচিত নয় xargs file {}
। আমি অনুমান করি যখন আমি স্পষ্টভাবে -I {spec নির্দিষ্ট করে বলছি, বাশ এটি হিসাবে বিবেচনা করবে file "Hello World"
। -আর। Without ব্যতীত এটি হিসাবে বিবেচিত হয় file Hello World
।
-1
বিকল্পটি জানেন ls
তা কিন্তু ডিফল্টরূপে এটি যখন ls
ফাইল বা পাইপ হয় তখন আপনার এটির প্রয়োজন হয় না। (3) আপনি -I
অবমূল্যায়িত -i
(লোয়ার কেস I
) বিকল্পের সাথে বিভ্রান্ত করছেন । -ifoo
সমতুল্য -Ifoo
, তবে সমতল -i
সমান -I{}
। তবে ব্যবহার -I{}
। (4) আপনি যা করতে চান তা যদি আপনি সত্যিই করতে চান তবে কেন কেবল বলবেন না file *
?
file
করতে। তবে আমি ব্যবহার করে একটি সহজ উদাহরণ নিয়ে এসেছি ls
। তুমি ঠিক. তার জন্য, file *
সেরা।
-exec
।