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

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.