是否有一种简单的方法可以打印file.txt的完整路径?

file.txt = /nfs/an/disks/jj/home/dir/file.txt

<命令>

dir> <command> file.txt  

应该打印

/nfs/an/disks/jj/home/dir/file.txt

当前回答

你可以使用fpn(完整路径名)脚本:

% pwd
/Users/adamatan/bins/scripts/fpn

% ls
LICENSE   README.md fpn.py

% fpn *
/Users/adamatan/bins/scripts/fpn/LICENSE
/Users/adamatan/bins/scripts/fpn/README.md
/Users/adamatan/bins/scripts/fpn/fpn.py

fpn不是一个标准的Linux包,但它是一个免费开放的github项目,你可以在一分钟内设置好。

其他回答

这将适用于文件和文件夹:

getAbsolutePath(){
    [[ -d $1 ]] && { cd "$1"; echo "$(pwd -P)"; } || 
    { cd "$(dirname "$1")" || exit 1; echo "$(pwd -P)/$(basename "$1")"; }
}
you@you:~/test$ ls
file
you@you:~/test$ path="`pwd`/`ls`"
you@you:~/test$ echo $path
/home/you/test/file

我发现最简单的方法是:

for i in `ls`; do echo "`pwd`/$i"; done

这对我来说很有效。

我很惊讶居然没人提到定位。

如果已经安装了定位包,甚至不需要在感兴趣的文件所在的目录中。

假设我正在寻找一个setenv.sh脚本的完整路径名。这就是找到它的方法。

$ locate setenv.sh
/home/davis/progs/devpost_aws_disaster_response/python/setenv.sh
/home/davis/progs/devpost_aws_disaster_response/webapp/setenv.sh
/home/davis/progs/eb_testy/setenv.sh

注意,在这种情况下它会找到三个脚本,但是如果我只需要一个I 会这样做:

$ locate *testy*setenv.sh
/home/davis/progs/eb_testy/setenv.sh

使用指向:

readlink -f file.txt