readlink
не является стандартной командой, но это часто встречается на Linux и BSD, включая OS X, и это самый простой ответ на ваш вопрос. Реализации BSD и GNU readlink различны, поэтому читайте документацию по той, которая у вас есть.
readlink
Если нет, или вам нужно написать скрипт кросс-платформенной, не привязанных к конкретной реализации:
Если символическая также каталог, то
cd -P "$symlinkdir"
приведет вас в каталог разблокировки, поэтому
echo "I am in $(cd -P "$symlinkdir" && pwd)"
будет эхо полностью разыменованным каталогом. Тем не менее, cd -P
разделяет весь путь, поэтому, если у вас есть более одной символической ссылки по тому же пути, вы можете получить неожиданные результаты.
Если символическая ссылка относится к файлу, а не к каталогу, вам может не потребоваться разыменовать ссылку. Большинство команд без символических ссылок. Если вы просто хотите проверить, является ли файл ссылкой, используйте test -L
.
'readlink',' ls -l' – PSkocik
readlink - это функция, которую я могу вызвать в сценарии bash? Я пытаюсь, но не работает = ( – sensorario
readlink - это двоичный код, который является частью coreutils – PSkocik