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.

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 % 

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.