В GNU coreutils есть командаrealpath
, которая делает именно это.
/tmp/a$ realpath..
/tmp
Обратите внимание, что если путь содержит символические ссылки, он также разрешает:
/tmp/b/c$ realpath..
/tmp/x/y
(Здесь /tmp/b
была символической ссылкой на/tmp/x/y/
)
Это может отличаться от того, что делает оболочка с cd..
. Например. cd../..
из /tmp/b/c
в Bash показывает новый путь как /tmp/
, а не как /tmp/x
.
У меня была такая же проблема.
Я удалил XQuartz:
launchctl unload /Library/LaunchAgents/org.xquartz.startx.plist sudo launchctl unload /Library/LaunchDaemons/org.xquartz.privileged_startx.plist sudo rm -rf /opt/X11* /Library/Launch*/org.xquartz.* /Applications/Utilities/XQuartz.app /etc/*paths.d/*XQuartz sudo pkgutil --forget org.xquartz.pkg
Потом переустановил и с тех пор все снова работает.
Надеюсь, это поможет.