Если ваш файл находится только в одном месте, вы можете попробовать следующее:
cd "$(find ~/ -name [filename] -exec dirname {} \;)" && ...
Вы можете использовать -exec
, чтобы вызвать dirname
с путем, который возвращает находка (который идет там, где заполнитель {}
).Это изменит каталоги.Вы также можете добавить двойные амперсанды (&&
) для выполнения следующей команды после того, как оболочка изменила каталог.
Например:
cd "$(find ~/ -name need_to_find_this.rb -exec dirname {} \;)" && ruby need_to_find_this.rb
Он будет искать этот рубинфайл, перейдите в каталог, затем запустите его из этой папки.В этом примере предполагается, что имя файла уникально и что по какой-то причине скрипт ruby должен запускаться из своего каталога.Если имя файла не уникально, вы получите много мест, переданных на cd, он вернет ошибку, тогда не изменит каталоги .