是否有一种简单的方法可以打印file.txt的完整路径?
file.txt = /nfs/an/disks/jj/home/dir/file.txt
<命令>
dir> <command> file.txt
应该打印
/nfs/an/disks/jj/home/dir/file.txt
是否有一种简单的方法可以打印file.txt的完整路径?
file.txt = /nfs/an/disks/jj/home/dir/file.txt
<命令>
dir> <command> file.txt
应该打印
/nfs/an/disks/jj/home/dir/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
其他回答
如果你和文件在同一个目录:
ls "`pwd`/file.txt"
用目标文件名替换file.txt。
我喜欢已经给出的许多答案,但我发现这真的很有用,特别是在脚本中获得文件的完整路径,包括遵循符号链接和相对引用,例如。和. .
dirname `readlink -e relative/path/to/file`
它将返回从根路径开始的文件的完整路径。 这可以在脚本中使用,以便脚本知道它是从哪个路径运行的,这对于可能位于机器上任何位置的存储库克隆非常有用。
basePath=`dirname \`readlink -e $0\``
然后我可以在我的脚本中使用${basePath}变量来直接引用其他脚本。
希望这能有所帮助,
Dave
you@you:~/test$ ls
file
you@you:~/test$ path="`pwd`/`ls`"
you@you:~/test$ echo $path
/home/you/test/file
另一个Linux实用程序,它做这个工作:
fname <file>
在Mac OSX中,执行以下步骤:
CD到目标文件的目录。 输入下列任意一个终端命令。
Terminalls "`pwd`/file.txt"
echo $(pwd)/file.txt
用实际的文件名替换file.txt。 按回车键