একটি কমান্ড চালান যা একটি উপনাম দ্বারা ছায়াযুক্ত


163

ধরা যাক আমার নীচে নিম্ন বর্ণের ব্যাশ রয়েছে alias ls='ls --color=auto'- এবং আমি lsবিকল্প ছাড়াই সাধারণ কল করতে চাই । এটি করার একমাত্র উপায় হ'ল আনালিয়াস, কমান্ডটি করা এবং তারপরে আবার ওরফে? বা কিছু নিফটি কৌশল বা workaround আছে?


2
নীচের কয়েকটি উত্তর সম্পর্কে কেবল একটি নোট: "কমান্ড" এটি সম্পাদন করার একমাত্র নিরাপদ উপায় way উদাহরণস্বরূপ, " অথবা অন্তর্নির্মিত "উত্স" সম্ভবত স্ক্রিপ্ট-সংজ্ঞায়িত ফাংশন দ্বারা ওভাররাইড করা হবে। "কমান্ড।" বা "কমান্ড উত্স" হ'ল স্ক্রিপ্ট-সংজ্ঞায়িত ফাংশন পরিবর্তে উত্স থেকে নিরাপদে সম্পাদন করার একমাত্র উপায়। ব্যাকস্ল্যাশ পদ্ধতি "\।", কাজ সহ অন্য কোনও বিকল্প নেই, এবং অবশ্যই কোনও "/ বিন / উত্স" বিকল্প নেই যা আপনি একটি পূর্ণ পথ নির্দিষ্ট করে ডাকতে পারেন।
দেজয় ক্লেটন

উত্তর:


209

উপন্যাসটি অক্ষম করতে আপনি পিছনে স্ল্যাশ উপসর্গও করতে পারেন: \ls

সম্পাদনা করুন: এটি করার অন্যান্য পদ্ধতিগুলির মধ্যে রয়েছে:

"কমান্ড" ব্যবহার করুন: command lsঅনুযায়ী Mikel

সম্পূর্ণ পাথ ব্যবহার করুন: /bin/lsঅনুযায়ী uther

কমান্ডটি উদ্ধৃত করুন: "ls"বা 'ls'মাইকেলের মন্তব্য অনুসারে।

আপনি টার্মিনাল সেশনের সাথে অস্থায়ীভাবে উপনামটি সরিয়ে ফেলতে পারেন unalias command_name


এটি করার জন্য এটি আমার আদর্শ উপায়।
ncmathsadist

খুব সুন্দর, tcsh এর সাথেও ভাল কাজ করে
লেভন

10
এই উপায় খুব দরকারী। এটি কেবলমাত্র উপকরণগুলি বাইপাস করে, ফাংশনগুলি নয়, যা এটিকে commandবা এর থেকে আলাদা করে তোলে builtin
মাইকেল

1
দেখে মনে হচ্ছে l\sএকই কাজ করে। এই আচরণটি কি বাগ বা কোনও বৈশিষ্ট্য?
নিক্লাস বি।

4
এটি একটি "বৈশিষ্ট্য"। কেবল উদাত্ত অ্যালিয়াসগুলি প্রসারিত করা হয়। সুতরাং আপনি এটিকে উদ্ধৃতিতে রাখতে পারেন, বা আপনার পছন্দ মতো যে কোনও জায়গায় ব্যাকস্ল্যাশ ব্যবহার করতে পারেন। দেখুন ব্যাশ alias লেখা রেফারেন্স
মাইকেল 25'12

79

যে কি commandকমান্ড জন্য।

চেষ্টা

command ls

এটি শেলটিকে উপকরণ এবং ফাংশনগুলি বাইপাস করতে বলে।

এই উপায়টি ব্যাশ , জ্যাশ এবং অ্যাশ / ড্যাশ দ্বারা সমর্থিত ।


2
সেরা উত্তর, কেন এটি সবচেয়ে উর্ধ্বে নয়? :) +1
0xC0000022L

11
কারণ এটি ব্যাকস্ল্যাশ পদ্ধতি হিসাবে 8 গুনের সংখ্যার যোগ করে
জোয়েলফ্যান

1
@ STATUS_ACCESS_DENIED এটি টিসিএস দিয়েও কাজ করে না (এবং সম্ভবত সম্ভবত সিএসএস দিয়ে নয়)। `\` পদ্ধতিটি করে
লেভন

3
ব্যাকস্ল্যাশ বৈশিষ্ট্যটি নিরাপদ নয়। এটি একইরূপে নামকরণ করা এলিয়াসগুলির বিরুদ্ধে সুরক্ষা সরবরাহ করার সময়, এটি একই নামযুক্ত ফাংশনগুলির বিরুদ্ধে সুরক্ষা সরবরাহ করে না।
দেজয় ক্লেটন

2
@ জোয়েলফ্যান আমার কাছে আরও কয়েকটি অতিরিক্ত চরিত্র ছিল এবং আমার স্ক্রিপ্টগুলি অনুসরণ করা এবং সবার পক্ষে কাজ করা সহজ হয়ে ওঠে। বরং কোনও ক্রিপ্টিক স্ল্যাশ যা স্বজ্ঞাত নয়, মিস করা সহজ, ভাল নথিভুক্ত নয়, এবং ফাংশনগুলি বাইপাস করার জন্য কাজ করে না।
ডেনিস

19

উপনামটি কেবল একটি সংজ্ঞায়িত শর্টকাট। এই উদাহরণে, উপন্যাসটি সংজ্ঞায়িত করা হয় স্ট্রিং ls, যা সম্পাদন করে ls --color=auto। যদি আপনি সেই আচরণটি না চান তবে আপনি lsপরম পথটি ব্যবহার করে বাইনারি কল করতে পারেন ।

সুতরাং কেবল মৃত্যুদন্ড কার্যকর করা /bin/lsরঙ ছাড়াই আউটপুট উত্পন্ন করবে কারণ এটি আপনার সংজ্ঞায়িত উপমা নয়।

আপনি অন্যটি কিছু উপকরণও পরিবর্তন করতে পারেন, বা lsরঙের পরামিতিগুলি ছাড়াই কার্যকর একটি নতুন উপন্যাস যুক্ত করতে পারেন ।


2
কমান্ডটি কোথায় তা আপনাকে জানতে হবে। কিছু সিস্টেমে, মধ্যে বিভাজন /binএবং /usr/binনির্বিচারে।
কিথ থমসন

যে জন্য @KeithThompson, আপনি ব্যবহার করতে পারে whichকিছু কমান্ড জন্য: which ls
cst1992

@ সিএসটি ১৯৯২: আপনি যদি which(বা type) ব্যবহার করতে চলেছেন তবে এটির মাধ্যমে একটি অনুসন্ধান করা হবে $PATH; আপনি পাশাপাশি ব্যবহার করতে পারেন lsবা \lsপাথ নির্দিষ্ট করার চেয়ে বেশি use
কিথ থম্পসন

10

@ উথরের উত্তরের ভিত্তিতে আরেকটি উপায়, নির্বাহের পথটি স্বয়ংক্রিয়ভাবে সন্ধানের জন্য ব্যবহার $(which ...)বা `which ...`(ব্যাকটিক্স ব্যবহার করে ``)। এটি এতে কাজ করবে bash:

$(which ls)

`which ls`

নিঃসন্দেহে, কমান্ডটির সাথে কেবল প্রাকটিসিং \করা খুব কম হয়।

আপডেট : কীভাবে একটি এলিয়াসেড কমান্ডে `which` ব্যবহার করবেন? , এটি মোটেই নির্ভরযোগ্য বলে মনে হচ্ছে না।


বন্ধনী কীসের জন্য? আমার ধারণা আপনি `which ls`বাইনারি সরাসরি চালানো বলতে চাইছেন ।
amyassin

2
@ এমায়াসিন: উভয় বাক্য গঠন সমান। (বিটিডাব্লু, আপনি কোড বিন্যাসে ব্যাকটিক্স কীভাবে পেলেন?)
krlmlr

আসলে (which ls)আমার পক্ষে কাজ করেনি (উবুন্টু ১২.০৪ এলটিএসে) এবং ব্যাকটিকগুলি শক্ত ছিল, আমি কেবল তাদের পালাতে পেরেছিলাম: `` যা ls \ `` সেখানে যাওয়ার জন্য এটির অনেক সম্পাদনা লেগেছিল :)
amyassin

1
@ user946850 "একটি কোড স্প্যানের মধ্যে আক্ষরিক ব্যাকটিক অক্ষর অন্তর্ভুক্ত করতে আপনি একাধিক ব্যাকটিকগুলি উদ্বোধন এবং সমাপনী ডিলিমিটার হিসাবে ব্যবহার করতে পারেন"। সূত্র: মার্কডাউন রেফারেন্স
মাইকেল 25'12

@ এমায়াসিন: আপনি কি যোগ করেছেন $?
krlmlr

2

ব্যক্তিগতভাবে, আমি কেবল কমান্ড হিসাবে একই নামের সাথে উপকরণগুলি সংজ্ঞায়িত করা এড়াতে পারি, তাই lsসর্বদা প্রকৃত আদেশটি অনুরোধ করে। আমি অপশনের বিভিন্ন সমন্বয় জন্য alias লেখা বা ফাংশন l, llএবং lg। (এর অর্থ unalias lsআমার .bashrcবা আমার প্রয়োজন .cshrc))

আমি দেখতে পেলাম যে অপশনগুলি আমি পছন্দ করতে পারি সে সম্পর্কে OS এর অনুমানগুলি ( lsনিজেই কমান্ডের ডিজাইনারদের অনুমানগুলি ওভাররাইড করা) খুব কমই আমার নিজের ব্যক্তিগত স্বাদের সাথে মেলে। আমি বর্ণনাকে অপছন্দ করি ls --color=autoএবং এর স্বচ্ছলতা কালো-অন-হোয়াইট এবং হোয়াইট-অন-ব্ল্যাকের মধ্যে পৃথক হতে পারে।

ওয়াইএমএমভি এবং অন্যান্য সমাধানগুলি অবশ্যই জেনে রাখা ভাল।


1

বড় হাতের মধ্যে কমান্ডটি টাইপ করা কাজ করার মতো মনে হয় LS, যদিও আমি কেন এটি সত্য তা নিশ্চিত নই।


4
কোন শেল, কোন অপারেটিং সিস্টেম, কোন টার্মিনাল ইত্যাদি?
মিকেল 24'12

@ মাইকেল একটি "প্যাকেজ" আছে যা "এলএস" হিসাবে "এসএল" সরবরাহ করে। উবুন্টুতে দেওয়া টিপস ব্যাশটি আরও বলে যে "এলএস" "এসএল" সরবরাহ করে।
ইজকাটা

1
এটি ম্যাক ওএস এক্স 10.7-এ বাশ 4 (ফিংকের সাথে ইনস্টল করা)। এটি অন্যান্য কমান্ডগুলির জন্যও কাজ করে যা আমি আরএম এবং গ্রেপের মতো করে রেখেছি।
asmeurer

3
এটি কেবল একটি রসিকতা :) এমএন পৃষ্ঠা থেকে:LS - display animations aimed to correct users who accidentally enter LS instead of ls.
এমায়াসিন

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