আমি ফাইলের তালিকায় বারবার কিছু করতে চাই। প্রশ্নগুলিতে থাকা ফাইলগুলির নামে ফাঁকা স্থান রয়েছে:
david@david: ls -l
total 32
-rw-rw-r-- 1 david david 13 Mai 8 11:55 haha
-rw-rw-r-- 1 david david 0 Mai 8 11:55 haha~
-rw-rw-r-- 1 david david 13 Mai 8 11:55 haha (3rd copy)
-rw-rw-r-- 1 david david 13 Mai 8 11:55 haha (4th copy)
-rw-rw-r-- 1 david david 13 Mai 8 11:55 haha (5th copy)
-rw-rw-r-- 1 david david 13 Mai 8 11:55 haha (6th copy)
-rw-rw-r-- 1 david david 13 Mai 8 11:55 haha (7th copy)
-rw-rw-r-- 1 david david 13 Mai 8 11:55 haha (another copy)
-rw-rw-r-- 1 david david 13 Mai 8 11:55 haha (copy)
এখন আমি এই ফাইলগুলির প্রতিটি স্থির করতে চাই:
david@david: echo '
for file in $(ls)
do
stat $file
done' | bash
(আমি বহু-লাইন কমান্ড লিখতে ইকো এবং একটি পাইপ ব্যবহার করি))
আমি যখন এটি করি তখন এটি সেই ফাইলগুলিতে সঠিকভাবে কাজ করে যেগুলির নামে কোনও স্থান নেই। তবে অন্য ...
stat: cannot stat ‘(another’: No such file or directory
stat: cannot stat ‘copy)’: No such file or directory
পরিবর্তন $(ls)করার জন্য "$(ls)"বা $fileকরার "$file"কাজ করে না। আমি কি করতে পারি?
সম্পাদনা:
echo '
for files in *
do
stat "$files"
done' | bash
কৌতুক করে! আমি যেমন মারামায় নতুন, আমি জিনিসগুলিকে যতটা সম্ভব সহজ করে রাখতে চাই - তাই স্পেস থেকে বাঁচার চেষ্টা করে xargsবা ব্যবহার করে বা এর সাথে সমাধান না করে read -r, যদিও তারা সমস্যার সমাধান করে।
যেমন কিছু জিজ্ঞাসা করেছেন: হ্যাঁ, এর পরিবর্তে এটি ব্যবহার stat *করা অদ্ভুত। তবে আমি কেবল লুপের জন্য একটি লুপ ব্যবহার করে ব্যাশের একটি গুচ্ছ ফাইলের নামগুলিতে একই কমান্ডটি প্রয়োগ করার একটি সাধারণ উপায় খুঁজে পেতে চেয়েছিলাম। তাই statদাঁড়াতে পারে gzip, gpgবা rm।
stat *? (;-)