Я хотел бы простой способ получить полный путь в файл. Я в настоящее время ввожу это:
echo `pwd`/file.ext
Пытаясь сократить его, я сделал псевдоним удара:
alias fp='echo `pwd`/'
Но теперь если я ввожу fp file.ext
, существует пространство, которое появляется между /
и file.ext
.
Такая команда уже существует, и я пропускаю ее? В противном случае, как я пошел бы о создании такого псевдонима или функции в ударе?
В системах Linux Вы должны иметь readlink
от GNU coreutils установленный проект и может сделать это:
readlink -f file.ext
Системам Debian/ubuntu можно было установить realpath утилиту, которую "обеспечивает главным образом той же функциональности как /bin/readlink -f
в coreutils пакете."
Вместо pwd
команда, используйте PWD
переменная (это находится в POSIX также):
fp () {
case "$1" in
/*) printf '%s\n' "$1";;
*) printf '%s\n' "$PWD/$1";;
esac
}
Если необходимо поддерживать Windows, распознавая, что полные пути будут более сложными, поскольку каждый порт инструментов Unix имеет свои собственные правила для перевода путей к файлам. С Cygwin используйте cygpath
утилита.
для ответа на вопрос с тем, что Вы используете прямо сейчас:
псевдоним расширяется в положении, где Вы вводите прямо сейчас. Вы ввели:
% fp<SPACE>file.ext
это становится
% echo `pwd`<SPACE>file.exe
Вы могли использовать функцию, чтобы избежать что:
function fp() {
echo `pwd`/"$1"
}
можно использовать это, как обычно:
% fp file.ext