Я искал один файл "portmap" внутри корневого каталога следующим образом:

find -name "portmap"

Это дает местоположение файла

.init/...somepath./portmap

Теперь я хочу изменить свой текущий каталог на местоположение файла portmap и распечатать текущий рабочий каталог.

Так что я подумываю о конвейере вышеупомянутого места на CD Но как я могу сделать это с помощью одной команды?

Пожалуйста помоги

2 ответа2

1

Предполагая, что find находит одно и только одно совпадение для шаблона поиска, вы можете использовать

cd "$( dirname "$( find -name "portmap" )" )"

Если в любое время вы хотите сделать каталог, перечисленный в выводе предыдущей команды, вы можете использовать

cd "$( dirname "$(!!)" )"
-1

Команда xargs идеально подходит для этого, но команда cd в оболочке не очень хорошо с ней работает. Поэтому я бы использовал обратные галочки:

cd `find . -type d -name "portmap"`

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