Что я должен сделать, чтобы искать файл в списке папок и изменить текущий каталог на каталог файла?
Я попробовал find -name script.py | cd
но это не работало (не, что я ожидал это к).
Спасибо за помощь!
cd
не читает из stdin, таким образом, Вы не можете передать имя папки по каналу в него. Но можно использовать "$(...)"
для использования вывода команды как аргумент в пользу cd
:
cd "$(find -name script.py -type f -printf '%h\n' -quit)"
-printf '%h\n'
говорит find
производить только к папкам, который содержит файлы.
-quit
говорит find
выходить после того, как это нашло первый файл соответствия.
Можно использовать этот код:
cd "$(dirname "$(find / -type f -name test | head -1)")"
, Где, поскольку Вы видите его, будет искать от вершины корневого каталога с командой find /
, тогда, это перечислит регулярные файлы, названные тестом - name test
, в последний раз это изменится на свой каталог.
Примечание: передача по каналу до head -1
отфильтрует все кроме первого.
dirname
- разделяют суффикс некаталога от имени файла
cd
каталог