![使用“find”命令获取文件的绝对路径](https://linux22.com/image/852060/%E4%BD%BF%E7%94%A8%E2%80%9Cfind%E2%80%9D%E5%91%BD%E4%BB%A4%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E7%9A%84%E7%BB%9D%E5%AF%B9%E8%B7%AF%E5%BE%84.png)
有没有办法获取正在搜索的文件的绝对路径?
例如:
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