मैं मूल कमांड कैसे चला सकता हूं जो एक ही नाम से अलियास हो।


22

इस एक के साथ फाइल lsमें कमांड के लिए एक उपनाम ~/.bashrc:

alias ls='ls --color=auto'

तब, जब मैं lsटर्मिनल अलियासिड ls( ls --color=auto) रन में कमांड चलाता हूं । लेकिन मेरा सवाल यह है कि मैं lsकेवल lsअतिरिक्त तर्क के बिना और केवल अलियास एंट्री को हटाने के साथ समस्या को हल किए बिना मूल कैसे चला सकता हूं ? जब से मैं इस प्रविष्टि को हटाता हूं मैं इसे सरल रूप में चला सकता हूं ls

जवाबों:


60

आप निम्नलिखित तरीकों से उपनामों को बायपास कर सकते हैं:

  1. कमांड का पूरा पथनाम: /bin/ls

  2. कमांड प्रतिस्थापन: $(which ls)

  3. कमांड बिलिन: command ls

  4. दोहरे उद्धरण चिह्न: "ls"

  5. एकल उद्धरण चिह्न: 'ls'

  6. एक बैकस्लैश चरित्र: \ls


9
बैश में अतिरिक्त पूर्वाग्रह: उपनाम और फ़ंक्शन नाम command somethingदोनों को बायपास करता है । , और केवल अलियास नाम के बायपास करता है (यदि कोई फ़ंक्शन मौजूद है, तो उसे बुलाया जाएगा)। (उपनाम पूर्ववर्ती कार्य यदि दोनों मौजूद हैं और कोई भी बाईपास नहीं किया गया है)something\\something'something'"something"something
ओलिवियर दुलैक

9

उर्फ विस्तार को निलंबित करें

आप सभी उपनामों को अस्थायी रूप से हटाए बिना, अन्य उपनामों को भी अक्षम कर सकते हैं:

$ shopt -u expand_aliases
$ command -v ls
/bin/ls

उन्हें सक्षम करने के लिए:

shopt -s expand_aliases
$ command -v ls
alias ls='ls --color=auto'

ध्यान दें कि स्क्रिप्ट में डिफ़ॉल्ट रूप से उपनाम विस्तार अक्षम है, लेकिन इंटरेक्टिव गोले में डिफ़ॉल्ट रूप से सेट किया गया है।


9

आप \कमांड के सामने किसी अन्य उपनाम को अक्षम कर सकते हैं ।

इसलिए मूल lsकमांड को चलाने के लिए आपको इसका उपयोग करके चलाने की आवश्यकता है\ls

उदाहरण के लिए

  • पहले lsकमांड का उपनाम बनाना ।

    [guru@guru-Aspire-5738 /]$ alias ls='ls -l'
    [guru@guru-Aspire-5738 /]$ ls
    total 96
    drwxr-xr-x   2 root root  4096 Sep  3 18:31 bin
    drwxr-xr-x   5 root root  4096 Sep 17 02:51 boot
    drwxr-xr-x   2 root root  4096 Sep  3 22:17 cdrom
    drwxr-xr-x  17 root root  4520 Sep 17 21:11 dev
    drwxr-xr-x 153 root root 12288 Sep 17 21:11 etc
    drwxr-xr-x   3 root root  4096 Sep  3 22:17 home
    lrwxrwxrwx   1 root root    37 Sep  8 21:31 initrd.img -> /boot/initrd.img-3.2.0-68-generic-pae
    lrwxrwxrwx   1 root root    36 Sep  3 22:18 initrd.img.old -> boot/initrd.img-3.2.0-

    (और बहुत सारे...)

  • मूल के उत्पादन का lsउपयोग करते हुए \जो उपनाम को ओवरराइड करता है।

    [guru@guru-Aspire-5738 /]$ \ls
    bin    etc         lib     opt   sbin     tmp      vmlinuz.old
    boot   home        lost+found  proc  selinux  usr
    cdrom  initrd.img      media       root  srv      var
    dev    initrd.img.old  mnt     run   sys      vmlinuz
    [guru@guru-Aspire-5738 /]$ 

6

आप commandउपनाम आदेश से पहले जोड़ सकते हैं , जैसे

command ls

या संयोजन द्वारा मूल निष्पादन योग्य चलाएं which

which ls

यह "/ बिन / एलएस" लौटाएगा, इसलिए साथ

`जो एल.एस.

आप इसे सीधे निष्पादित कर सकते हैं।


4

तुम भी इसके मूल स्थान से आदेश चला सकते हैं /bin/lsके बजायls

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.