3

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

2 ответа2

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

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

0

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

(while [[ ! -f $file ]] && [[ $PWD != / ]]; do \cd ..; done;
if [[ -f $file ]];then echo $PWD/$file;fi)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .