Большую часть времени, когда я делаю команду cd
, я также делаю ls
, чтобы посмотреть, какие другие файлы или папки находятся в этом каталоге. Поэтому я хочу выполнять ls
каждый раз, когда меняю каталог. Я знаю, что могу сделать cd foo && ls
, но действительно ли необходимо делать && ls
каждый раз?
Есть 2 способа сделать это. Вы можете создать псевдоним, когда LnxSlck опубликовал или другой создает функцию в .bash_aliases
mycd(){ cd "$1" && ls; }
Я использую следующее, которое не требует добавления каких-либо новых команд:
cd() {
builtin cd "$@"
local status=$?
[ $status -eq 0 ] && ls
return $status
}
Это заставляет cd
работать так же, как и раньше, за исключением того, что есть также ls
.
Обратите внимание на следующие последствия: Другие примеры не допускают аргументов для cd
. Хотя, по общему признанию, эти аргументы редки, это 100% -ная совместимая замена. И поскольку он возвращает состояние выхода cd
, он не нарушает сценарии.
builtin cd
. Но мой опыт использования этой функции в течение многих лет заключается в том, что такие случаи встречаются редко, в основном в сценариях, и удобство отсутствия необходимости печатать что-то длинное, как mycd
каждый раз, когда вы хотите изменить каталоги, значительно перевешивает небольшой недостаток ввода builtin cd
однажды в голубой луне.
Вы можете сделать alias
для cd
и добавить его в свой * bash_profile * или bashrc , что-то вроде:
alias 'mycd'='cd $1 && ls'
положить это в свой .bashrc
. Однако рекомендуется хранить все ваши псевдонимы в файле ~/bash_aliases
, поэтому создайте файл, используя touch ~/.bash_aliases
, если его еще нет, и используйте его для хранения всех ваших псевдонимов .