我想要一种简单的方法来获取文件的完整路径。我目前输入的是:
echo `pwd`/file.ext
为了缩短它,我创建了一个 bash 别名:
alias fp='echo `pwd`/'
但是现在如果我打字,和fp file.ext
之间会出现一个空格。/
file.ext
这样的命令是否已经存在,而我却找不到它?如果没有,我该如何在 bash 中创建这样的别名或函数?
答案1
在 Linux 系统上,您应该已经readlink
安装了 GNU coreutils 项目,并且可以执行以下操作:
readlink -f file.ext
Debian/ubuntu 系统可能有真实路径安装的实用程序“提供的功能与/bin/readlink -f
coreutils 包中的大部分相同”。
答案2
您可以使用:
realpath file.ext
答案3
从https://stackoverflow.com/a/3915420/5795941
这是唯一我能够接受的方法。它不会像 realpath 和 readlink 那样展开链接,而且是我见过的经典方法。
#! /bin/sh
echo "$(cd "$(dirname "$1")"; pwd -P)/$(basename "$1")"
答案4
用你现在使用的东西来回答你的问题:
别名会在您当前输入的位置展开。您输入的是:
% fp<SPACE>file.ext
这变成
% echo `pwd`<SPACE>file.exe
您可以使用一个函数来避免这种情况:
function fp() {
echo `pwd`/"$1"
}
您可以照常使用它:
% fp file.ext