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

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

<命令>

dir> <command> file.txt  

应该打印

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

当前回答

这可以简化

 ls <file_name> | pwd

其他回答

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

fname <file>

这适用于Linux和Mac OSX:

echo $(pwd)$/$(ls file.txt)

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

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

假设我正在寻找一个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
fp () {
PHYS_DIR=`pwd -P`
RESULT=$PHYS_DIR/$1
echo $RESULT | pbcopy
echo $RESULT
}

将文本复制到剪贴板并在终端窗口上显示文本。

:)

(我从另一个堆栈溢出的答案复制了一些代码,但再也找不到答案了)

创建一个如下所示的函数(使用pwd回显文件的绝对路径,并将文件添加到路径的末尾:

abspath() { echo $(pwd "$1")/"$1"; }

现在你可以找到任何文件路径:

abspath myfile.ext