Nachricht anzeigen, wenn CD in ein bestimmtes Verzeichnis geschrieben wurde

15

Wie kann ich eine Nachricht anzeigen, wenn ich mich cdin einem bestimmten Verzeichnis befinde? Dieses Verzeichnis ist lokal und ich brauche nur eine Erinnerung, wenn ich es vom Terminal aus betrete.

Connor Montgomery
quelle

Antworten:

25

Wenn ich Sie wäre, würde ich mit so etwas in meiner Shell-Konfigurationsdatei herumspielen (zB ~/.bashrc):

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

alias cd=reminder_cd

Auf diese Weise können Sie .cd-reminderin jedem Verzeichnis, für das Sie eine Erinnerung erhalten möchten, eine Datei hinzufügen . Der Inhalt der Datei wird nach jeder erfolgreichen Übertragung cdin das Verzeichnis angezeigt .

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
quelle
1
Coole Idee übrigens! Ich mag es und vielleicht benutze ich es auch :-)
Stéphane Gimenez
In diesem Fall nicht wichtig, aber im Allgemeinen ist es gut, immer doppelte Anführungszeichen zu verwenden $@.
Enzotib
1
Danke, ich frage mich jetzt, ob es einen Fall gibt, in dem $@man den Vorzug geben sollte "$@"...
Stéphane Gimenez
1
Sie sollten $@oder $*(sie sind dasselbe, wenn sie nicht in Anführungszeichen stehen) verwenden, wenn IFS-Wordsplitting auftreten soll.
Chris Down
Wenn Sie diese Methode verwenden, vergessen Sie nicht, den Alias pushdund popdauch.
mVChr