Как заменить "ls -l" тем же самым в "dir"?
Я использую сервер Ubuntu, используя только локальный доступ по SSH, но когда я выдаю dir Все, что я получаю, это один список файлов и папок без подробностей, но с использованием dir -l дает мне длинный список, но все равно ничто по сравнению с использованием ls -l который показывает цвета, соответствующие разрешениям, как я могу получить тот же дисплей, используя dirбез необходимости добавлять ключи командной строки? такие как dir -l,
Ранее, используя dir будет показывать длинный список автоматически, но со временем и множеством обновлений, автоматическое отображение длинного списка dir не там сейчас.
2 ответа
Вы можете добавить псевдоним для.bashrc, чтобы сообщить оболочке на сервере о запуске ls -l всякий раз, когда вы печатаете dirв основном просто следующая строка:
alias dir='ls -l'
Сохраните и выйдите, затем запустите source .bashrc перезагрузить.
Если вы собираетесь сделать dir псевдоним, я предлагаю alias dir='dir --color=auto -l' , Это, вероятно, поведение, которое вы ищете. Это имеет преимущество в поддержании других аспектов того, как dir отличается от ls и не полагаясь или - или даже не будучи затронутым - любым ls псевдоним у вас может быть.
Вы можете определить псевдонимы и функции оболочки, которые имеют то же имя, что и имя внешней команды (например, ls а также dir), и они могут быть определены для вызова этой внешней команды с дополнительными параметрами, переданными ей. Это то, что псевдоним, предложенный выше, делает. Так что, возможно, вы имели dir запущенный псевдоним (или функция оболочки) dir -l,
Когда это еще не сделано, dir работает как ls -Cb , ls а также dir Команды разные. Цель dir команда должна быть командой как ls чье поведение не зависит от того, запускается ли оно в терминале. По этой причине вы можете подумать не делать dir псевдоним вообще, и просто используя ls или же ll вместо. ll это обычно определенный псевдоним для ls -l,
Хотя расширение псевдонима не определяется тем, является ли вывод выводом, оно в основном определяется тем, является ли оболочка, в которой вы запускаете команду, интерактивной. (Есть способы переопределить это, но обычно вы этого не хотите.) Кроме того, --color=auto Цвета только в том случае, если устройство вывода является терминалом, так что вы обычно не получаете нежелательных кодов цвета, если вы (например) перенаправить вывод в файл.
Однако, если вы хотите изменить то, что происходит при запуске dir то причина, по которой я предлагаю сделать это псевдонимом dir --color=auto -l является то, что это добавляет опции, которые вы запрашиваете, в то же время неявно используя -C а также -b, Наличие -C не важно, так как он отменяется -l, -C означает отображать в столбцах, и -l означает отображать в виде подробного списка. Он не может делать и то и другое, поэтому он делает то, что говорит последний параметр, который вы передаете. Но -b все еще значительный; это приводит к экранированию странных символов в именах файлов, так что вы обычно можете копировать имена файлов, показанные в терминальных командах, без изменений.
Конечно, вы могли бы вместо этого использовать alias dir='ls -bl --color=auto', Это достигнет того же эффекта (вам не нужно включать -C как это отменяется -l во всяком случае, как объяснено выше). Или, по крайней мере, это будет иметь тот же эффект, если бы у вас не было ls псевдоним. Расширение псевдонима не является полностью рекурсивным, поэтому вы можете использовать псевдоним ls к команде, которая начинается с ls (или же dir к команде, которая начинается с dir). Но расширение псевдонима, тем не менее, продолжается до тех пор, пока либо результат не станет псевдонимом, либо дальнейшее расширение не приведет к рекурсивному циклу. Определение вашего dir псевдоним не с точки зрения ls освобождает вас от неожиданных эффектов ls может быть псевдоним.
Что касается того, где поместить определение псевдонима, вы, безусловно, можете поместить его непосредственно в .bashrc файл, находящийся в вашем домашнем каталоге, как это ни о чем не говорит. В этом случае это дает то преимущество, что у вас уже почти наверняка есть определения псевдонимов для ls в этом файле, и вы могли бы положить свой dir псевдоним рядом. Ваш .bashrc файл может даже уже закомментирован (с #) псевдонимы, которые можно раскомментировать и использовать.
Однако вместо этого я предлагаю поместить новые определения псевдонимов - те, которые вы пишете сами - в .bash_aliases, По умолчанию .bashrc файлы в Ubuntu будут источником этого файла, если он существует. То есть, .bashrc обычно содержит:
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Если по какой-то причине ваш .bashrc файл не имеет этого, то вы можете добавить его (или только строки, которые не начинаются с #, если вы не хотите воспроизводить комментарии).