সহজ সমাধানটি হ'ল '
প্রথমে একক উদ্ধৃতি ( ) এবং শেষে অন্য একক উক্তি রাখা এবং '
ফাইলের নামের প্রতিটি অক্ষরকে 4-বর্ণের ক্রম দ্বারা প্রতিস্থাপন করা '\''
। সমস্ত অক্ষর একক-উদ্ধৃত স্ট্রিংয়ের ভিতরেই তার বিশেষ অর্থটি হারিয়ে ফেলে, স্ট্রিংয়ের '
শেষটি চিহ্নিত করে except ক্রমটি '\''
একক-উদ্ধৃত আক্ষরিক সমাপ্ত হয়, অবিলম্বে একটি উদ্ধৃত একক উদ্ধৃতি অনুসরণ করে এবং একটি নতুন একক-উদ্ধৃত আক্ষরিক খোলে। এইভাবে ফাইলের নাম
This file's name has some weird characters!
Will you manage to escape them?
নিম্নলিখিত হিসাবে উদ্ধৃত করা যেতে পারে:
somecommand 'This file'\''s name has some weird characters!
Will you manage to escape them?'
ডাবল উদ্ধৃতিতে আরও জটিল পালানোর নিয়ম রয়েছে এবং !
যদি ইতিহাস প্রতিস্থাপন সক্রিয় হয় তবে আপনাকে বিস্মৃত চিহ্নটি অন্তর্ভুক্ত করার অনুমতি দেবেন না, সুতরাং আমি সেগুলি আরও বিবেচনা করব না।
ব্যাকস্ল্যাশ সহ অক্ষরগুলি রক্ষা করা একটি বিকল্প পদ্ধতি। এটি নিউলাইনগুলি বাদে প্রতিটি চরিত্রের জন্য কাজ করে; একটি নতুন লাইনের জন্য, এটি একক উদ্ধৃতি (বা ডাবল উদ্ধৃতি) এর মধ্যে রাখা একমাত্র সমাধান। আপনি যদি উদ্ধৃত নামটি ব্যবহারকারীর কাছে উপস্থাপনের জন্য ব্যাকস্ল্যাশগুলির সংখ্যা হ্রাস করতে চান, আপনি ব্যাকস্ল্যাশ প্রয়োজন এমন জায়গায় সীমাবদ্ধ রাখতে পারেন; তবে, আপনি যত বেশি ব্যাকস্ল্যাশগুলি বাদ দিবেন, ততই আপনার যেটি প্রয়োজন তা ভুলে যাওয়ার ঝুঁকি তত বেশি। চিঠি, সংখ্যা এবং ASCII অক্ষর সর্বদা ঠিক always আপনি যখনই অনিশ্চিত হন তখন উজ্জ্বল স্থান এবং বিরামচিহ্ন।
একটি সাধারণ শেল (ksh, bash বা zsh) দিয়ে আপনার কমপক্ষে কিছু পরিস্থিতিতে নিম্নলিখিত অক্ষরগুলি উদ্ধৃত করতে হবে।
- হোয়াইটস্পেস (স্পেস, ট্যাব, নিউলাইন - মনে করে যে নিউলাইনগুলি ব্যাকস্ল্যাশ দিয়ে উদ্ধৃত করা যাবে না)।
!
- ইতিহাসের বিস্তৃতি।
"
- শেল সিনট্যাক্স।
#
- সাদা জায়গা দ্বারা পূর্বে মন্তব্য শুরু; zsh ওয়াইল্ডকার্ডস
$
- শেল সিনট্যাক্স।
&
- শেল সিনট্যাক্স।
'
- শেল সিনট্যাক্স।
(
- এমনকি একটি শব্দের মাঝখানে: ksh বর্ধিত গ্লোব (ব্যাশ এবং zsh এও উপলব্ধ); zsh ওয়াইল্ডকার্ডস
)
(দেখুন (
)
*
- sh ওয়াইল্ডকার্ড
,
- শুধুমাত্র ব্রেস প্রসারিত ভিতরে।
;
- শেল সিনট্যাক্স।
<
- শেল সিনট্যাক্স।
=
- zsh এ, যখন এটি কোনও ফাইলের নামের শুরুতে হয় (PATH চেহারা সহ ফাইলের নাম সম্প্রসারণ)।
>
- শেল সিনট্যাক্স।
?
- sh ওয়াইল্ডকার্ড
[
- sh ওয়াইল্ডকার্ড
\
- শেল সিনট্যাক্স।
]
- আপনি এটিকে অব্যক্ত রেখে পালিয়ে যেতে পারেন।
^
- ইতিহাসের প্রসার; zsh ওয়াইল্ডকার্ড
`
- শেল সিনট্যাক্স।
{
- বন্ধনী সম্প্রসারণ।
|
- শেল সিনট্যাক্স।
}
- জেডএস-এ পালানো দরকার, যখন খোলার কোনও মিল নেই other
~
- কোনও ফাইলের নামের শুরুতে হোম ডিরেক্টরি সম্প্রসারণ; zsh ওয়াইল্ডকার্ড; সর্বদা নিরাপদ যখন এটি শেষ চরিত্র।
আরও কয়েকটি চরিত্রের মাঝে মাঝে বিশেষ হ্যান্ডলিংয়ের প্রয়োজন হতে পারে:
-
শেলটির জন্য বিশেষ নয়, তবে এটি যখন কমান্ড আর্গুমেন্টের শুরুতে হয়, এটি একটি বিকল্প নির্দেশ করে। এটি উদ্ধৃতি দিয়ে সুরক্ষিত করা যায় না যেহেতু বিশেষ হ্যান্ডলিং কমান্ডে রয়েছে, শেলটিতে নয়। শুরু হওয়া কোনও ফাইলের নাম সুরক্ষার জন্য -
, আপনি ./
এটির আগে রাখতে পারেন - এটি এখনও একই ফাইল, তবে যুক্তিটি -
আর শুরু হয় না।
.
নিজের মধ্যে বিশেষ নয়, তবে ডট ফাইলগুলি *
ডিফল্টরূপে গ্লোবগুলি থেকে বাদ দেওয়া হয়।
:
শেলটির জন্য বিশেষ নয়, তবে কিছু কমান্ড এটি বিশেষভাবে পার্স করে, যেমন দূরবর্তী ফাইল ( hostname:filename
) নির্দেশ করতে । কলোনযুক্ত ফাইল নামগুলি কীভাবে মোকাবেলা করতে হয় তার জন্য কমান্ডের ডকুমেন্টেশনের সাথে পরামর্শ করুন।
¹ ব্যবহারকারী বিকল্প ইতিহাস প্রসারণ অক্ষর কনফিগার না করা অবধি । কিছু শেল এটির অনুমতি দেয়। ব্যাকস্ল্যাশগুলির চেয়ে একক উদ্ধৃতি ব্যবহারের এটি অন্য কারণ is