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


2

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

pwd
/Users/denz/projects/coolApp

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

~/projects/coolApp

Ответы:


6

Вот функция:

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

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


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

echo ${PWD/~/\~}

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


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

@NateEldredge Внесено небольшое изменение в sedспособ, угловой корпус теперь должен нормально работать с обоими вариантами.
холме
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.