Как я занимаю место “ls-l” с тем же в “dir”?

Я использую сервер Ubuntu с помощью локального доступа только SSH, но когда я выхожу dir управляйте всем, что я получаю, единственный список файлов и папок без деталей, но использования dir -l дает мне длинный список, но тем не менее ничто по сравнению с использованием ls -l который показывает цвета, соответствующие с полномочиями, как я получаю то же самое использование дисплея dir, не имея необходимость продолжать добавлять переключатели командной строки? такой как dir -l.

Ранее, использование dir показал бы длинный список автоматически, но со временем и множество обновлений, автоматический дисплей длинного списка dir нет ли теперь.

2
задан 20 April 2018 в 22:00

2 ответа

Можно добавить псевдоним к .bashrc, чтобы сказать оболочке на сервере работать ls -l каждый раз, когда Вы вводите dir, в основном, просто следующая строка:

alias dir='ls -l'

Сохраните и выйдите, затем работайте source .bashrc перезагружать.

2
ответ дан 2 December 2019 в 02:43

Если Вы собираетесь сделать dir псевдоним, я предлагаю alias dir='dir --color=auto -l'. Это - вероятно, поведение, которое Вы ищете. Это обладает преимуществом поддержания других аспектов как dir отличается от ls, и не надежды или - ни даже быть затронутым - любым ls псевдоним Вы могли бы иметь.

Можно определить псевдонимы и окружить функции, которые имеют то же имя как название внешней команды (как ls и dir), и они могут быть определены для вызова той внешней команды с дополнительными опциями переданной ему. Это - то, что выше делает псевдоним, предложенный. Таким образом, возможно, Вы раньше имели a dir псевдоним (или функция оболочки), который работал dir -l.

Когда это не сделано, тем не менее, dir работы как ls -Cb. ls и dir команды отличаются. Цель dir команда должна быть командой как ls чье поведение незатронуто тем, выполняется ли оно в терминале. Поэтому Вы могли бы рассмотреть не создание dir псевдоним вообще и просто использование ls или ll вместо этого. ll обычно определяемый псевдоним для ls -l.

В то время как расширение псевдонима не определяется тем, является ли вывод терминалом, определено главным образом тем, является ли оболочка, в которой Вы выполняете команду, интерактивной. (Существуют способы переопределить это, но обычно Вы не хотите.), Кроме того, --color=auto colorizes только, когда устройство вывода является терминалом, так, чтобы Вы не получали обычно нежелательные цветовые коды, если Вы (например), перенаправляете вывод в файл.

Однако, если Вы хотите изменить то, что происходит, когда Вы работаете 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 файл, находящийся в Вашем корневом каталоге, как mikewhatever, предлагает. В этом случае это обладает преимуществом, для которого Вы уже почти наверняка обладаете определения псевдонима 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 файл не имеет этого, затем можно добавить его (или просто строки, которые не запускаются с #, если Вы не испытываете желание воспроизводить комментарии).

1
ответ дан 2 December 2019 в 02:43

Другие вопросы по тегам:

Похожие вопросы: