是否有一种简单的方法可以打印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
当前回答
这对我来说很有效。它不依赖于文件系统(取决于需要的利弊),所以它会很快;并且,它应该可以移植到大多数*NIX。它假设传递的字符串确实是相对于PWD,而不是其他目录。
function abspath () {
echo $1 | awk '\
# Root parent directory refs to the PWD for replacement below
/^\.\.\// { sub("^", "./") } \
# Replace the symbolic PWD refs with the absolute PWD \
/^\.\// { sub("^\.", ENVIRON["PWD"])} \
# Print absolute paths \
/^\// {print} \'
}
其他回答
这适用于Linux和Mac OSX:
echo $(pwd)$/$(ls file.txt)
使用指向:
readlink -f file.txt
创建一个如下所示的函数(使用pwd回显文件的绝对路径,并将文件添加到路径的末尾:
abspath() { echo $(pwd "$1")/"$1"; }
现在你可以找到任何文件路径:
abspath myfile.ext
在Windows上:
按住Shift键,在Windows资源管理器中右键单击一个文件,会出现一个名为“复制为路径”的选项。 这将复制文件的完整路径到剪贴板。
在Linux上:
您可以使用realpath yourfile命令来获得其他人建议的文件的完整路径。
在Mac OSX中,执行以下步骤:
CD到目标文件的目录。 输入下列任意一个终端命令。
Terminalls "`pwd`/file.txt"
echo $(pwd)/file.txt
用实际的文件名替换file.txt。 按回车键