Dou*_*hen 5 directory find shell-script
我在处理find
命令时遇到了一些问题;我不太了解它的语法,我需要在脚本中使用它来查找可以位于任何地方的特定目录结构。
基本上,我有一个像“project/dir1/dir2”这样的结构,我知道它始终是这三个目录,具有相同的名称,按顺序排列。可能不同的是这个结构嵌套的深度;例如你可以有:
$HOME/project/dir1/dir2
或者
$HOME/workspace/project/dir1/dir2
基本上我需要一种通用的方法来定位project/dir1/dir2
结构,无论它埋得有多深。
这将始终在 Ubuntu 上。我考虑过使用 locate,但随后我必须保证 locate db 始终是最新的。
Bra*_*iam 11
如果你使用过,find -name project/dir1/dir2
你会发现这样的消息:
find: 警告:Unix 文件名通常不包含斜杠(尽管路径名包含)。这意味着
-name 'project/dir1/dir2'
在这个系统上可能会一直评估为假。您可能会发现该-wholename
测试更有用,或者-samefile
. 或者,如果您使用 GNU grep,则可以使用find ... -print0 | grep -FzZ
project/dir1/dir2'`。
因此,它为此类任务提供了某些替代方案。奇怪的是它没有提到-path
要查找的命令:
find -path "*/project/dir1/dir2" -print
Run Code Online (Sandbox Code Playgroud)
请注意*/
开头。这些告诉 find 打印任何/project/dir1/dir2
以第一个目录的名称结尾的路径,project
否则它会找到myproject/dir1/dir2
等等。
归档时间: |
|
查看次数: |
4229 次 |
最近记录: |