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

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

<命令>

dir> <command> file.txt  

应该打印

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

当前回答

find $PWD -type f | grep "filename"

or

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

其他回答

我猜你用的是Linux。

我在coreutils 8.15中找到了一个名为realpath的实用程序。

realpath -s file.txt
/data/ail_data/transformed_binaries/coreutils/test_folder_realpath/file.txt

由于问题是关于如何获取文件的完整/绝对路径,而不是关于如何获取符号链接的目标,请使用-s或——no-symlinks,这意味着不要展开符号链接。

根据@styrofoam-fly和@arch-standton注释,realpath本身并不检查文件是否存在,为了解决这个问题,添加e参数:realpath -e file

在Mac OSX中,执行以下步骤:

CD到目标文件的目录。 输入下列任意一个终端命令。

Terminal
ls "`pwd`/file.txt"
echo $(pwd)/file.txt

用实际的文件名替换file.txt。 按回车键

除了"readlink -f",还有一个常用的命令:

$find /the/long/path/but/I/can/use/TAB/to/auto/it/to/ -name myfile /the/long/path/but/I/can/use/TAB/to/auto/it/to/myfile $

这也给出了控制台的完整路径和文件名

跑题:这种方法只给出相对链接,而不是绝对链接。readlink -f命令是正确的。

对于Mac OS,如果你只是想在查找器中获取文件的路径,控制单击该文件,并向下滚动到底部的“服务”。你有很多选择,包括“复制路径”和“复制完整路径”。单击其中一个将路径放到剪贴板上。

通常:

find `pwd` | grep <filename>

或者,只针对当前文件夹:

find `pwd` -maxdepth 1 | grep <filename>