是否有一种简单的方法可以打印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
当前回答
我知道这是一个老问题了,但在这里补充一下信息:
Linux命令,可用于查找命令文件的文件路径。
$ which ls
/bin/ls
这里有一些注意事项;请参见https://www.cyberciti.biz/faq/how-do-i-find-the-path-to-a-command-file/。
其他回答
对于Mac OS X,我替换了操作系统附带的实用程序,用更新版本的coreutils替换了它们。这允许你在Mac上访问像readlink -f(文件的绝对路径)和realpath(目录的绝对路径)这样的工具。
Homebrew版本在命令名前附加了一个“G”(GNU工具)——所以等价的是greadlink -f FILE和grealpath DIRECTORY。
关于如何通过Homebrew在Mac OS X上安装coreutils/GNU Tools的说明可以在这篇StackExchange文章中找到。
注意:readlink -f和realpath命令对于非mac Unix用户应该是开箱即用的。
在类似的场景中,我从其他位置启动cshell脚本。为了设置脚本的正确绝对路径,让它只在指定的目录中运行,我使用了以下代码:
set script_dir = `pwd`/`dirname $0`
$0存储脚本执行的确切字符串。
例如,如果脚本像这样启动:$> ../../test/test.csh, $script_dir将包含/home/abc/sandbox/v1/
我知道这是一个老问题了,但在这里补充一下信息:
Linux命令,可用于查找命令文件的文件路径。
$ which ls
/bin/ls
这里有一些注意事项;请参见https://www.cyberciti.biz/faq/how-do-i-find-the-path-to-a-command-file/。
在Windows上:
按住Shift键,在Windows资源管理器中右键单击一个文件,会出现一个名为“复制为路径”的选项。 这将复制文件的完整路径到剪贴板。
在Linux上:
您可以使用realpath yourfile命令来获得其他人建议的文件的完整路径。
我猜你用的是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