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

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

<命令>

dir> <command> file.txt  

应该打印

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

当前回答

echo $(cd $(dirname "$1") && pwd -P)/$(basename "$1")

这是对@ZeRemz的答案的解释:

这个脚本获取相对路径作为参数"$1" 然后我们得到该路径的dirname部分(你可以将dir或file传递给这个脚本): 然后将“$(dirname“$1”)cd到这个相对目录中 && pwd -P并获取它的绝对路径。-P选项将避免所有符号链接 在此之后,我们将basename附加到绝对路径: 作为最后一步,我们重复它

其他回答

这可以简化

 ls <file_name> | pwd
find $PWD -type f | grep "filename"

or

find $PWD -type f -name "*filename*"

使用指向:

readlink -f file.txt

我发现最简单的方法是:

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

这对我来说很有效。

另一个Linux实用程序,它做这个工作:

fname <file>