Как искать * вверх * файл? (обратная находка)

Я хотел бы искать "вверх" для файла в сценарии оболочки, например, проверять $PWD, затем $PWD/.., затем $PWD/../.. и т. Д., Пока не достигнет корня. Прежде, чем я пойду и брошу свою собственную, есть ли какая-нибудь встроенная магия bash/zsh/find, которая сделает это для меня?

2 ответа

Ну, я понятия не имею, как это сделать в 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

Насколько я знаю, нет такого инструмента, который мог бы сделать это.

Использование встроенных команд оболочки:

(while [[ ! -f $file ]] && [[ $PWD != / ]]; do \cd ..; done;
if [[ -f $file ]];then echo $PWD/$file;fi)
Другие вопросы по тегам