有没有简单的方法可以打印出file.txt
的完整路径?
file.txt = /nfs/an/disks/jj/home/dir/file.txt
<command>
元素
dir> <command> file.txt
应该打印出来
/nfs/an/disks/jj/home/dir/file.txt
我猜你正在使用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
realpath
函数于2011年底被提交到了 coreutils
仓库,版本8.15在2012年1月发布。我在2011年3月回答了这个问题(提出了readlink
的建议):) - filmorrealpath -e
会打印出一个错误。 - Arch Stanton-s
选项以不扩展符号链接。 - Robin A. Meade通常以下代码可以解决问题:
echo "$(cd "$(dirname "$1")" && pwd -P)/$(basename "$1")"
LOCAL_VARIABLE="filename.txt" && echo $(cd $(dirname "$LOCAL_VARIABLE") && pwd -P)/$(basename "$LOCAL_VARIABLE")
- stiemannkj1readlink
在文件是符号链接时无法正常工作,所以它会显示符号链接的目标而不是符号链接本身。 - qwertzguyreadlink
会带我回到符号链接生成的父目录,但是这个命令会忽略它。 - Sukhi我知道有比这更简单的方法,但是我找不到...
jcomeau@intrepid:~$ python -c 'import os; print(os.path.abspath("cat.wav"))'
/home/jcomeau/cat.wav
jcomeau@intrepid:~$ ls $PWD/cat.wav
/home/jcomeau/cat.wav
Shift
键然后右击文件,会出现一个名为复制路径
的选项。选择该选项可以将文件的完整路径复制到剪贴板。realpath yourfile
来获取文件的完整路径,这是其他人推荐的方法。find $PWD -type f | grep "filename"
或者find $PWD -type f -name "*filename*"
find \
pwd` -type file -name *.dmp` 替代 $pwd。 - mrwaimfind $PWD
,在只有几个文件时完美地运作。 - Neithan Max如果您与文件在同一目录中:
ls "`pwd`/file.txt"
用你的目标文件名替换 file.txt
。
echo $(pwd)/file.txt
命令。 - Alex我知道这已经是一个老问题了,但为了增加这里的信息:
Linux命令which
可用于查找命令文件的路径,即:
$ which ls
/bin/ls
需要注意的是,这里有一些限制;请参见https://www.cyberciti.biz/faq/how-do-i-find-the-path-to-a-command-file/。
% pwd
/Users/adamatan/bins/scripts/fpn
% ls
LICENSE README.md fpn.py
% fpn *
/Users/adamatan/bins/scripts/fpn/LICENSE
/Users/adamatan/bins/scripts/fpn/README.md
/Users/adamatan/bins/scripts/fpn/fpn.py
fpn
不是标准的Linux软件包,但它是一个免费且开放的Github项目,你可以在一分钟内设置好它。
pwd
命令应该是没有问题的。 - karolus适用于Mac、Linux和*nix操作系统:
以下命令将为您提供当前目录中所有文件的带引号csv格式:
ls | xargs -I {} echo "$(pwd -P)/{}" | xargs | sed 's/ /","/g'
brew install coreutils
,最后运行greadlink -f file.txt
来获取文件的绝对路径。 - To Krareadlink
的 man 手册中可以看到:注意,realpath
是首选的用于规范化功能的命令。 - Huntro