Führen Sie ls automatisch aus, nachdem Sie den Pfad mit autocd geändert haben

8

Jedes Mal, wenn ich das Verzeichnis ändere, soll der neue Pfad automatisch aufgelistet werden ls.
Es gibt Lösungen, wenn der Pfad mithilfe von geändert wird, cdaber ich habe nie eine Lösung gefunden, die funktioniert, wenn der Pfad mithilfe dieser autocdOption geändert wird .

Wäre ganz praktisch, hat das schon mal jemand erreicht?

Brillout
quelle

Antworten:

5

Sie können dies erreichen, indem Sie die Variable ändern PROMPT_COMMAND, die vor PS1 ausgeführt wird, z.

PROMPT_COMMAND='ls'

Dies wird jedes Mal aufgelistet, wenn Sie eine neue Eingabeaufforderung erhalten. Natürlich möchten Sie nur ausführen, lswenn sich das Verzeichnis geändert hat:

PROMPT_COMMAND='[[ $my_currdir != $PWD ]] && ls; my_currdir=$PWD'

Dies prüft, ob das neue Verzeichnis nicht mit dem zuletzt festgelegten identisch ist, und wird dann ausgeführt. Danach lswird Ihr aktuelles Verzeichnis gespeichertmy_currdir

Ich habe hier eine noch bessere Zeile gefunden , in der sie bash als Dateimanager verwenden :

PROMPT_COMMAND='[[ ${__new_wd:=$PWD} != $PWD ]] && list; __new_wd=$PWD'

Da dies möglicherweise nicht festgelegt __new_wdist, können Sie einen Standardwert zuweisen, der in diesem Fall verwendet wird (siehe bashManpages, Suche nach :=).

steabert
quelle