我有一个源代码树,其根目录是/ home / me / workspace.有很多级别的子目录很多.特别是有一个包含一些工具的路径:
/home/me/workspace/tools/scripts
我正在写一个bash函数,我可以从树中的任何地方调用我传递字符串工具/脚本.该函数应该从当前工作目录迭代到/寻找路径片段工具/脚本,然后如果找到它,则打印出找到它的绝对路径.在此示例中,将打印/ home / me / workspace.如果根本找不到路径片段,则不打印任何内容.
我已经有了以下bash函数,它为我做了这个:
search_up () ( while [ $PWD != "/" ]; do if [ -e "$1" ]; then pwd break fi cd .. done )
但这似乎有点啰嗦.我想知道是否有任何其他方法可以在bash本身,或者在一个find命令或任何其他常见实用程序中执行此操作.我特别期待可读性和简洁性.
注意我不是在寻找整个树的完整递归搜索.
我的bash也不是最新的,所以请不要使用最新的,最棒的:
$bash --version GNU bash,version 3.00.15(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2004 Free Software Foundation,Inc. $