Jak wydrukować ścieżkę z katalogiem domowym zastąpionym przez ~ w terminalu?

2

Jak wydrukować ścieżkę w terminalu, zastępując ścieżkę folderu domowego znakiem ~?

pwd
/Users/denz/projects/coolApp

Ale chcę coś takiego

~/projects/coolApp
Voloda2
źródło

Odpowiedzi:

6

Oto funkcja:

pwdr () {
  pwd | sed s,$HOME,~,
}

Dodaj tę funkcję do pliku profilu i użyj pwdr.


W bashmożna także użyć parametru ekspansji i uniknąć wywołanie sedprzy użyciu raczej magicznie patrząc

echo ${PWD/~/\~}

${...}Wyrażenie może być stosowany wszędzie zmienną powłoki mogą być stosowane jako dobrze, echoto tylko w celach demonstracyjnych.

grg
źródło
Oczywiście może się to nie udać w przypadkach narożnych, na przykład jeśli istnieje katalog o nazwie, do /Users/denz/foo/Users/denzktórego to się tłumaczy ~/foo/~.
Nate Eldredge,
@NateEldredge Wprowadzono niewielką zmianę w sedsposobie, obudowa narożna powinna teraz działać poprawnie z obiema opcjami.
nohillside