使用“find”命令获取文件的绝对路径

使用“find”命令获取文件的绝对路径

有没有办法获取正在搜索的文件的绝对路径?

例如:

find .. -name "filename"

它给了我类似的结果../filename,但我想要完整的路径。

我需要的是在父目录及其子目录中找到一个特定的文件,稍后我会在另一个脚本中使用它。

谢谢

答案1

您可以bash使用波浪号扩展获取当前工作目录的绝对路径,这种方式find也会打印结果的绝对路径:

find ~+ -type f -name "filename"

如果在执行~/Desktop,则扩展为

find /home/yourusername/Desktop -type f -name "filename"

并打印如下结果:

/home/yourusername/Desktop/filename

如果你想将此方法与当前工作目录一起使用父母cd调用之前需要的目录find

cd .. && find ~+ -type f -name "filename"

答案2

尝试以下方法:

find "$(cd ..; pwd)" -name "filename"

答案3

最简单的方法是

find "$(pwd -P)" -name "filename"

答案4

这对我有用,但只会返回第一次出现的情况。

realpath $(find . -type f -name filename -print -quit)

获取所有出现的完整路径(如 Sergiy Kolodyazhnyy 所建议的)

find . -type f -name filename -print0 | xargs -0 realpath

相关内容