Я хотел бы получить простой способ получить полный путь к файлу. Я сейчас набираю это:
echo `pwd`/file.ext
Пытаясь сократить его, я сделал псевдоним bash:
alias fp='echo `pwd`/'
Но теперь , если я печатаю fp file.ext
, есть пространство , которое появляется между /
и file.ext
.
Такая команда уже существует, и мне ее не хватает? Если нет, то как мне создать псевдоним или функцию в bash?
command-line
bash
Йенс Эрат
источник
источник
readlink -f
(илиrealpath
, которая является более старой утилитой, сохраняемой для совместимости) дополнительно расширит все символические ссылки, что не обязательно желательно.realpath
.Вместо
pwd
команды используйтеPWD
переменную (она также в POSIX):Если вам нужна поддержка Windows, распознавание абсолютных путей будет более сложным, поскольку у каждого порта инструментов Unix есть свои правила для преобразования путей к файлам. С Cygwin используйте
cygpath
утилиту.источник
чтобы ответить на ваш вопрос с тем, что вы используете прямо сейчас:
псевдоним расширяется в той позиции, где вы печатаете прямо сейчас. Вы ввели:
это становится
Вы можете использовать функцию, чтобы избежать этого:
Вы можете использовать это как обычно:
источник
echo "`pwd`/$1"
*
в каталоге, содержащем другие файлы).fp *
дает,/tmp/4cc3ea0c1b34b
так как это первый параметр для функции. другие параметры будут другими файлами в каталоге. как только у меня есть файл с именем ' ', функция все еще работает, как и ожидалось, вызывая его с помощью «*» или * или *Ты можешь использовать:
источник
apt-cache search realpath
чтобы показать, что пакеты coreutils и plain ol ' realpath оба содержат это. Затем вы можете напечататьsudo apt-get install realpath
(илиcoreutils
), чтобы установить его.С /programming//a/3915420/5795941
Это единственный способ, который приемлем для меня. Не расширяет ссылки, такие как realpath и readlink, и это классический способ сделать это, который я видел повсюду.
источник