কমান্ড-লাইন প্যারামিটারগুলিতে "-" (একটি ড্যাশ) যাদু কী?


101

উদাহরণ:

  • একটি আইএসও চিত্র তৈরি করুন এবং এটি সরাসরি একটি সিডিতে বার্ন করুন।

    mkisofs -V Photos -r /home/vivek/photos | cdrecord -v dev=/dev/dvdrw -

  • পূর্ববর্তী ডিরেক্টরিতে পরিবর্তন করুন।

    cd -

  • 12345 পোর্টে শুনতে এবং এটিতে পাঠানো অনর্থক ডেটা।

    nc -l -p 12345 | tar xvzf -

ড্যাশটির উদ্দেশ্য কী এবং আমি কীভাবে এটি ব্যবহার করব?

উত্তর:


111

আপনি যদি কমান্ডের -শেষে নগ্নটি বোঝাতে চান তবে tarএটি অনেকগুলি কমান্ডের মধ্যে সাধারণ যা কোনও ফাইল ব্যবহার করতে চায়।

এটি আপনাকে প্রকৃত ফাইলের নামের চেয়ে মানক ইনপুট বা আউটপুট নির্দিষ্ট করার অনুমতি দেয় ।

এটি আপনার প্রথম এবং তৃতীয় উদাহরণের ক্ষেত্রে। উদাহরণস্বরূপ, cdrecordকমান্ডটি স্ট্যান্ডার্ড ইনপুট নিচ্ছে (আইএসও ইমেজ স্ট্রিম দ্বারা উত্পাদিত mkisofs) এবং এটিকে সরাসরি লিখছে /dev/dvdrw

সঙ্গে cdকমান্ড প্রত্যেক সময়ে ডিরেক্টরি পরিবর্তন করেন, এটা ডিরেক্টরি তোমার কাছ থেকে এসেছি সঞ্চয় করে। আপনি যদি cdবিশেষ -"ডিরেক্টরি নাম" দিয়ে থাকেন তবে এটি একটি বাস্তবের পরিবর্তে সেই স্মরণীয় ডিরেক্টরিটি ব্যবহার করে। এটি ব্যবহার করে আপনি খুব সহজেই দুটি ডিরেক্টরির মধ্যে স্যুইচ করতে পারেন।

অন্যান্য কমান্ডগুলি পৃথক বিশেষ মান -হিসাবে বিবেচনা করতে পারে ।


9
নোট আপনি -গিট শাখাগুলির জন্যও ব্যবহার করতে পারেন , অর্থাৎ আপনি আপনার পূর্ববর্তী শাখায় ফিরে যেতে পারেনgit checkout -
snappieT

3
ট্যার ডক্সে কোথায় এটি ব্যাখ্যা করা হয়েছে যে এটি সমর্থিত? কোন আদেশগুলি এটি সমর্থন করে আমি কীভাবে জানতে পারি?

1
যদি কোনও কমান্ডের বিশেষ অর্থ থাকে তবে -আপনি এর ব্যাখ্যাটি ম্যান পেজে খুঁজে পেতে পারেন।
কোডফোরস্টার

su - # শেলটি একটি লগইন শেল তৈরি করুন
আটংসা

আমি খুব কৌতূহলের মতো একটি আদেশ পেয়েছি: tar -cvf - / home | aescrypt -e -p আপেল -> ব্যাকআপ_ফাইলস.আর.এইস যা আসলে টার-সিভিএফ - / হোম | aescrypt -e -p আপেল -o ব্যাকআপ_ফাইস.টার.এইস - কারণ পাইপিং চর | শেষ ড্যাশ উপস্থিতি অপ্রয়োজনীয় করা উচিত। শেষ ড্যাশ ছাড়া কমান্ড ব্যর্থ হয়। অযৌক্তিক মনে হচ্ছে। কেউ দয়া করে আমাকে একটি রেফারেন্স দিতে পারেন যেখানে কমান্ড লাইনের নগ্ন ড্যাশ অর্থ ব্যাখ্যা করা হয়েছে। আমি কিছুই খুঁজে পাচ্ছি না।
এলমক্লোজ

22

এটা যাদু নয়। কিছু কমান্ড -ব্যবহারকারী স্ট্যান্ডিন থেকে পড়তে বা স্টডআউটে লিখতে চায় বলে ব্যাখ্যা করে ; শেল থেকে এটি সম্পর্কে বিশেষ কিছু নেই।


9
ক্ষেত্রে বাদে cd -; bash(1)হ্যান্ডলগুলি cd -যেমন আপনি লিখেছেন cd $OLDPWD
sarnold

6
@ সরোনল্ড তবে বিষয়টি একই, cdশেল বিল্ট-ইন কমান্ড - একটি ড্যাশ নিজেই ব্যাখ্যা করে। কোনও "যাদু" নেই :-)

2
@pst, নিশ্চিত করুন, কোন ম্যাজিক (এটা মাত্র কোড :), কিন্তু সেখানে হয় বিশেষ কিছু শেল তা সম্পর্কে।
sarnold

13

থেকে বা পুনঃ দিকনির্দেশ stdinবা stdout

দেখুন: http://tldp.org/LDP/abs/html/spected-chars.html#DASHREF2


সর্বদা হিসাবে, এবিএস লবণের একটি দানা সঙ্গে নেওয়া প্রয়োজন। উদাহরণস্বরূপ, এটি বোঝা সেখানে ফেরৎ কিছু এখানে আছে, কিন্তু এই শেল এর ফেরৎ অপারেটার (থেকে স্বতন্ত্র <, >, |, ইত্যাদি)।
ট্রিপলি

9

-প্রতিটি কমান্ড এর অর্থ বোঝাতে চাইছে ঠিক তার অর্থ। বেশ কয়েকটি সাধারণ কনভেনশন রয়েছে এবং আপনি অন্যান্য উত্তরের মধ্যে বেশিরভাগের উদাহরণ দেখেছেন তবে সেগুলির কোনওটিই 100% সর্বজনীন নয়।

-শেল সম্পর্কে যতদূর সম্ভব চরিত্রটি সম্পর্কে কোনও জাদু নেই (শেল নিজেই, এবং এর কিছু বিল্ট-ইন কমান্ড পছন্দ করে cdএবং echoএটি প্রচলিত উপায়ে ব্যবহার করে)। কিছু অক্ষর, মত \, 'এবং ", হয় "জাদু", বিশেষ অর্থ হচ্ছে যেখানেই তারা প্রদর্শিত হবে। এগুলি হ'ল "শেল মেটাচার্যাক্টর"। -যে মত না।

দেখার জন্য কিভাবে একটি প্রদত্ত কমান্ড ব্যবহার -, যে কমান্ড জন্য ডকুমেন্টেশন পড়ুন


7

ম্যাজিক কনভেনশনে আছে। সহস্রাব্দের জন্য, লোকেরা আর্গুমেন্ট থেকে বিকল্পগুলি পৃথক করতে '-' ব্যবহার করেছে এবং স্ট্যান্ডিন বা স্টাডআউটকে যথাযথ হিসাবে বোঝাতে একটি ফাইলনেমে '-' ব্যবহার করেছে। কনভেনশনের ক্ষমতাকে অবমূল্যায়ন করবেন না!


আক্ষরিক অভিব্যক্তি থেকে বক্তৃতা শিষ্টাচারের লোকদের দক্ষতা বাড়াবাড়ি করবেন না। সহস্রাব্দ ধরে এটি চলছে না।
ট্রিপলি

1
@ ট্রিপলি - সত্য, তবে এটি কোটি কোটি সেকেন্ড ধরে চলেছে। ;-)
ডেভিড আর ট্রাইবল

5

এর অর্থ প্রোগ্রামটির স্ট্যান্ডার্ড ইনপুট স্ট্রিম ব্যবহার করা।

এর ক্ষেত্রে এর cdঅর্থ অন্যরকম: পূর্ববর্তী ওয়ার্কিং ডিরেক্টরিতে পরিবর্তন change

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