Pokaż wiadomość, gdy cd do określonego katalogu

15

Jak mogę wyświetlić komunikat, gdy cdprzechodzę do określonego katalogu? Ten katalog jest lokalny i potrzebuję tylko przypomnienia, gdy wejdę do niego z terminala.

Connor Montgomery
źródło

Odpowiedzi:

25

Gdybym był tobą, bawiłbym się czymś takim w moim pliku konfiguracyjnym powłoki (np. ~/.bashrc):

reminder_cd() {
    builtin cd "$@" && { [ ! -f .cd-reminder ] || cat .cd-reminder 1>&2; }
}

alias cd=reminder_cd

W ten sposób możesz dodać .cd-reminderplik do każdego katalogu, dla którego chcesz otrzymać przypomnienie. Zawartość pliku będzie wyświetlana po każdym udanym cdprzejściu do katalogu.

gim@tenebreuse ~/tmp % echo 'warning: this directory is pure junk' > .cd-reminder
gim@tenebreuse ~/tmp % cd ..
gim@tenebreuse ~ % cd tmp
warning: this directory is pure junk
gim@tenebreuse ~/tmp % 
Stéphane Gimenez
źródło
1
Nawiasem mówiąc, fajny pomysł! Podoba mi się, a może też go użyję :-)
Stéphane Gimenez
W tym przypadku nie ma znaczenia, ale ogólnie dobrze jest zawsze podwoić cudzysłów $@.
enzotib,
1
Dzięki, zastanawiam się teraz, czy jest jakikolwiek przypadek, w którym $@należy być lepszym od "$@"...
Stéphane Gimenez
1
Powinieneś użyć $@lub $*(są to te same, gdy nie są cytowane), jeśli chcesz, aby nastąpiło dzielenie słów IFS.
Chris Down,
W przypadku korzystania z tej metody nie zapomnij alias pushda popdtakże.
mVChr