UNIX:在$ PWD以上的目录中查找文件

buk*_*zor 2 unix bash shell posix find

我想找到一个包含特定名称的文件,但在direcotories搜索上述当前的而不是下面.

我想要类似的东西:(功能除外)

$ cd /some/long/path/to/my/dir/

$ find -maxdepth -1 -name 'foo'
/some/long/path/to/foo
/some/foo
Run Code Online (Sandbox Code Playgroud)

Shell脚本或单行首选.


在回答几个问题时,上述示例与实际查找之间的区别在于搜索从当前目录向上进行(并且-maxdepth不采用否定参数).

Zar*_*Lau 6

有趣的问题,所以我试着给出一个有趣的答案:)

find `( CP=${PWD%/*}; while [ -n "$CP" ] ; do echo $CP; CP=${CP%/*}; done; echo / ) ` -mindepth 1 -maxdepth 1 -type f -name 'foo'
Run Code Online (Sandbox Code Playgroud)

有点精心设计,'while'循环将尝试生成当前目录的父路径列表.while循环不会生成/,所以我添加额外的'echo /'来覆盖它.

最后,封闭的"查找"命令是相当基本的用法.