Как я могу напечатать путь с заменой домашнего каталога на ~ в терминале?

2

Как я могу напечатать путь в Терминале с заменой пути к домашней папке на ~?

pwd
/Users/denz/projects/coolApp

Но я хочу что-то подобное

~/projects/coolApp
Voloda2
источник

Ответы:

6

Вот функция:

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

Добавьте эту функцию в файл профиля и используйте pwdr.


В bashвы также можете использовать расширение параметров и избежать вызова sedс помощью довольно волшебно выглядящих

echo ${PWD/~/\~}

${...}Выражение можно использовать везде , где переменная оболочки может быть использован как хорошо, echoтолько для демонстрационных целей.

Grg
источник
Конечно, это может не сработать в угловых случаях, например, если есть каталог, в /Users/denz/foo/Users/denzкоторый это будет переведено ~/foo/~.
Нейт Элдридж
@NateEldredge Внесено небольшое изменение в sedспособ, угловой корпус теперь должен нормально работать с обоими вариантами.
холме