Что эквивалентно [искажают cs ='cd; ls'], но с аргументом cs, идущему в CD вместо ls?

Например, я хочу:

/tmp: $ cs /home

выполнить 'CD / домой; ls' и дают:

user1 user2 user3 egfile.txt
/home: $
3
задан 20.09.2010, 06:38

2 ответа

Вы не можете передать аргументы псевдониму, но Вы можете к функции.

cs() {
cd "$@"
ls
}
8
ответ дан 07.12.2019, 23:09

Объединение отвеченного из @garyjohn и @Gilles с interactive? проверьте и разработанный ls выходное форматирование.

Теперь можно безопасно добавить это к Вашему ~/.bashrc или /etc/bash.bashrc:

Базовая версия

#
# Replace every cd with cd+ls
#
if [[ $- == *i* ]]; then  # if running interactively
  cd() {
    builtin cd "$@" && ls
  }
fi

Прекрасная версия

Фильтрует вывод ls так, чтобы только размер, mtime, и имя были отображены.

if [[ $- == *i* ]]; then  # if running interactively
  cd() {
    builtin cd "$@" &&
    ls --color=always -lh | 
    awk '{ for(i=5; i<=NF; i++) {printf("%s ", $i)}; print ""} '  | 
    column -t  && echo
  }
fi
1
ответ дан 07.12.2019, 23:09

Теги

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