我想在 shell 脚本中“向上”搜索文件,例如检查 $PWD,然后是 $PWD/..,然后是 $PWD/../..,等等,直到找到根目录。在我开始自己动手之前,是否有一些内置的 bash/zsh/find 魔法可以帮我完成这个任务?
答案1
好吧,我不知道如何在 zsh 中执行此操作,因为我使用 bash: 但我尝试了这个一行
START=$PWD; while [ $PWD != "/" ]; \
do ls|grep file && echo $PWD ;cd ..; done ; cd $START
如果你想在找到某些东西时停下来,你可以使用:
START=$PWD; while [ $PWD != "/" ]; do \
ls|grep file && echo $PWD && cd $START && break;cd ..; done
据我所知,没有这样的工具可以做到这一点。
答案2
使用 shell 内置命令:
(while [[ ! -f $file ]] && [[ $PWD != / ]]; do \cd ..; done;
if [[ -f $file ]];then echo $PWD/$file;fi)