Запустите команду, которая затенена псевдонимом

Предположим, у меня есть следующий псевдоним в bashalias ls='ls --color=auto' – и я хочу назвать обычные ls без параметров. Единственный способ сделать это – это сделать unalias, выполнить команду, а затем снова добавить псевдоним? Или есть какой-то отличный трюк или обход?

6 Solutions collect form web for “Запустите команду, которая затенена псевдонимом”

Вы также можете префикс обратной косой черты, чтобы отключить псевдоним: \ls

Изменить: Другие способы сделать то же самое:

Используйте команду «command»: command ls согласно Mikel .

Используйте полный путь: /bin/ls согласно uther .

Введите команду: "ls" или 'ls' согласно комментарию Микеля.

Вы можете временно удалить псевдоним для сеанса терминала с помощью unalias command_name .

Это для command строки.

Пытаться

 command ls 

Это говорит оболочке обходить псевдонимы и функции.

Этот способ поддерживается bash , zsh и ash / dash.

Псевдоним – это всего лишь определенный ярлык. В этом примере определяемый псевдоним представляет собой строку ls , которая выполняет ls --color=auto . Если вы не хотите этого поведения, вы можете вызывать двоичный ls используя абсолютный путь.

Таким образом, выполнение just /bin/ls будет выдавать результат без цвета, потому что это не псевдоним, который вы определили.

Вы также можете изменить псевдоним на что-то другое или добавить новый псевдоним, который выполняет только ls без параметров цвета.

Другой способ, основываясь на ответе @ uther, заключается в том, чтобы использовать $(which ...) или `which ...` (используя backticks` `` ) для автоматического поиска пути исполняемого файла. Это будет работать в bash :

 $(which ls) `which ls` 

Несомненно, просто префикс команды с \ намного короче.

ОБНОВЛЕНИЕ : В соответствии с тем, как использовать `which` в команде с псевдонимом? , это, кажется, не является надежным вообще.

Набрав команду в верхнем регистре, похоже, работает, как LS , хотя я не совсем уверен, почему.

Лично я просто избегаю определения псевдонимов с теми же именами, что и команды, поэтому ls всегда вызывает действительную команду. У меня есть псевдонимы или функции для различных комбинаций опций, таких как l , ll и lg . (Это означает, что мне нужны unalias ls в моем .bashrc или .cshrc .)

Я нахожу, что предположения OS о том, какие варианты я могу предпочесть (переопределяя предположения дизайнеров самой команды ls ), редко соответствуют моим личным вкусам. Мне не нравится внешний вид ls --color=auto , и его разборчивость может сильно различаться между черным по белому и белым на черном.

YMMV и другие решения, конечно, все еще хорошо знать.

  • Почему сглаживание над стандартными командами не рекомендуется?
  • Команда bash - aliased - использовать оригинальную команду?
  • Какие команды имеют параметр -h для чтения человеком и как его включить по умолчанию с переменной w / env?
  • Как добавить псевдоним системы?
  • Как определить псевдоним для неинтерактивной / недействительной оболочки?
  • Создание ярлыков / псевдонимов в Fedora
  • Как вы выполняете псевдоним или функцию, которая сохраняет вкладку?
  • Почему в команде bash отсутствуют псевдонимы?
  • cshell alias: как использовать вложенные одинарные кавычки (') в псевдониме cshell
  • Разрешить вложенные псевдонимы в исходные команды
  • как установить псевдоним команды в bash, который содержит как одиночные, так и двойные qoutes
  • Установка временных псевдонимов bash при входе в папку
  • Linux и Unix - лучшая ОС в мире.