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

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

  • Инструменты linux diff: создать список измененных файлов
  • Рассчитать количество дней оплаты
  • Переключение источника и адресата (или отмена операции mv, cp)
  • Ran-файл php-файла в bash, могут ли выполняться некоторые команды?
  • Ссылка на переменные массива bash из другого массива
  • Оболочка логическая не
  • Есть ли способ выделения цветом парных скобок в оболочке (bash)?
  • [[и эквивалентность случая в bash
  • обнаружить, если PDF-файл сделан из изображений
  • Установите постоянную переменную среды для всех пользователей
  • Тест Bash -v не работает с ассоциативными массивами в 4.3.46
  • Как проверить время выполнения команды?
  • 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 и другие решения, конечно, все еще хорошо знать.

    Linux и Unix - лучшая ОС в мире.