Jor*_*eFG 50 command-line find
有没有办法获得正在搜索的文件的绝对路径?
例如:
find .. -name "filename"
Run Code Online (Sandbox Code Playgroud)
它给了我类似的结果,../filename但我想要完整的路径。
我需要的是在父目录及其子目录中找到特定文件,稍后我将在另一个脚本中使用该文件。
谢谢
des*_*ert 31
您可以使用bash's Tilde Expansion 来获取当前工作目录find的绝对路径,这种方式也会打印结果的绝对路径:
find ~+ -type f -name "filename"
Run Code Online (Sandbox Code Playgroud)
如果在 中执行~/Desktop,则扩展为
find /home/yourusername/Desktop -type f -name "filename"
Run Code Online (Sandbox Code Playgroud)
并打印结果如下:
/home/yourusername/Desktop/filename
Run Code Online (Sandbox Code Playgroud)
如果要在当前工作目录的父目录中使用此方法,则需要cd在调用之前find:
cd .. && find ~+ -type f -name "filename"
Run Code Online (Sandbox Code Playgroud)
Scr*_*zer 25
尝试类似:
find "$(cd ..; pwd)" -name "filename"
Run Code Online (Sandbox Code Playgroud)
Syl*_*eau 18
尝试使用以下-exec选项find:
find .. -name "filename" -exec readlink -f {} \;
Run Code Online (Sandbox Code Playgroud)
注意:readlink打印符号链接或规范文件名的值。
小智 16
最简单的方法是
find "$(pwd -P)" -name "filename"
Run Code Online (Sandbox Code Playgroud)
这对我有用,但只会返回第一次出现。
realpath $(find . -type f -name filename -print -quit)
Run Code Online (Sandbox Code Playgroud)
获取所有事件的完整路径(如 Sergiy Kolodyazhnyy 所建议的)
find . -type f -name filename | xargs realpath
Run Code Online (Sandbox Code Playgroud)