Odpowiedzi:
Łączenie odpowiedzi @garyjohn i @Gilles z interactive?czekiem i rozwinięcie lsformatowania wyjściowego.
Teraz możesz bezpiecznie dodać to do swojego ~/.bashrclub /etc/bash.bashrc:
#
# Replace every cd with cd+ls
#
if [[ $- == *i* ]]; then # if running interactively
cd() {
builtin cd "$@" && ls
}
fi
Filtruje dane wyjściowe lstak, aby wyświetlały się tylko rozmiar, czas i nazwa.
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
[ "$PS1" ] || returnlub [[ $- == *i* ]] || return, zamiast zawijać wszystko w bardzo duży plik if.
ifi returnprawidłowe sposoby. Dziękuję za $-bardziej wiarygodną kontrolę. W końcu można używać powłoki interaktywnie bez pytania. $ PS zawsze wydawało mi się sztuczne.
\ rur po &&/ ||operatorów.
cd "$@" && lsaby funkcja zwróciła stan niezerowy (i nie uruchomi sięls) w przypadkucdniepowodzenia. Jeszcze lepiej:,builtin cd "$@" && lsktóry nadal działa, nawet jeśli funkcja jest wywoływanacd.