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