আপনি printf
প্রতিধ্বনি পরিবর্তে কমান্ডটি ব্যবহার করতে পারেন :
printf '%s\n' *
printf
echo
এই পরিস্থিতিতে তার চেয়ে উচ্চতর যে এতে "ডাবল ড্যাশ" ( ) সম্মান echo
করে না--
আর্গুমেন্ট তালিকার শেষটি বোঝাতে (কিছু সিস্টেমে উবুন্টু 14.04 সহ যা আমি এটিতে পরীক্ষা করেছি):
llama@llama:~$ mkdir -p Misc/unix210948
llama@llama:~$ cd !$
cd Misc/unix210948
llama@llama:~/Misc/unix210948$ touch -- -n
llama@llama:~/Misc/unix210948$ ls
-n
llama@llama:~/Misc/unix210948$ echo *
llama@llama:~/Misc/unix210948$ echo -- *
-- -n
llama@llama:~/Misc/unix210948$ printf '%s\n' *
-n
এই ক্ষেত্রে, আপনি পছন্দসই ফলাফল অর্জন করতে পারবেন না echo
(যেহেতু একটি ফাইল -n
হিসাবে পরিচিত হিসাবে বিকল্প হিসাবে ব্যাখ্যা করা হয়, এবং ডাবল ড্যাশ কাজ করে না, তাই আপনাকে অবশ্যই ব্যবহার করতে হবে printf
)।
মনে রাখবেন যে অজানা তথ্য নিয়ে ডিল করার সময় আপনার উপরের মতো ফর্ম্যাট স্ট্রিংটি সর্বদা ব্যবহার করা উচিত printf
, অন্যথায় আপনি অপ্রত্যাশিত ফলাফল পেতে পারেন (মন্তব্যগুলিতে এটি নির্দেশ করার জন্য @ জি-ম্যানকে ধন্যবাদ!):
llama@llama:~/Misc/unix210948$ rm ./-n
llama@llama:~/Misc/unix210948$ touch '\n'
llama@llama:~/Misc/unix210948$ ls
\n
llama@llama:~/Misc/unix210948$ printf -- *
llama@llama:~/Misc/unix210948$ printf '%s\n' *
\n
নামক একটি ফাইল \n
দ্বারা একটি নতুন লাইন হিসাবে ব্যাখ্যা করা হয় printf
। এটি এড়াতে, আমরা printf
( %s
) এর জন্য একটি ফর্ম্যাটিং স্ট্রিং ব্যবহার করি এবং এটি ফাইলের নাম (পূর্বের মতো গ্লোব্বিংয়ের মাধ্যমে প্রসারিত) পাস করি।
এই printf
+ বিন্যাসের স্ট্রিং সমাধানটি বিভিন্ন ধরণের ফাইলের নামগুলি হ্যান্ডেল করতে পারে (এবং "লুকানো" ফাইলগুলিও বোঝায়, যেগুলি এর সাথে শুরু হয় .
, একইভাবে ls
):
llama@llama:~/Misc/unix210948$ rm ./*
zsh: sure you want to delete all the files in /home/llama/Misc/unix210948/. [yn]? y
llama@llama:~/Misc/unix210948$ touch -- '-n' '\n' 'name with spaces' '.hidden'
llama@llama:~/Misc/unix210948$ ls
-n \n name with spaces
llama@llama:~/Misc/unix210948$ printf '%s\n' *
-n
\n
name with spaces
যদি আপনার printf
সমর্থন করে তবে %q
আপনি এটি ( printf '%q\n' *
) ব্যবহার করতে পারেন । আপনার ফাইলের নামগুলিতে যদি কোনও অদ্ভুত অক্ষর থাকে তবে এটি স্পেসস, নিউলাইনস ইত্যাদির হাত থেকে রক্ষা পাবে। (এটি নির্দেশ করার জন্য আড্ডায় এমুরুকে ধন্যবাদ !)
libc*so
বা আপনারld-linux*so