2017-02-14 24 views
1

We know Как совместить find и tar cvf.Комбинированная находка и jar -xvf?

Как объединить каждый файл с помощью -exec по адресу find с помощью команды, например jar -xvf?

Прецедент есть, мне нужно найти конкретные фляги файлов (например, -type f foo*.jar) в папке, а затем извлечь определенные записи из каждого файла банки, который find находок: jar -xvf <file> META-INF/services

общего случай, кажется, что пользователь хочет exec команду cmd для каждого файла, который найден, когда cmd принимает аргумент (ы) после файла.

+0

Является ли 'foreach' лучшей идеей здесь: (' for f in * .jar; do jar xvf $ f META-INF/services; done')? –

+0

Или, ('for f in $ (find. -name * .jar); do jar xvf $ f META-INF/services; done')? –

ответ

1

find -exec позволяет вам заменить имя файла в любом месте команды. Как и в связанном вопросе, вы можете сделать это, переместив {} в нужное место.

find /path -name '*.jar' -exec jar -xvf {} META-INF/services \; 
+0

Ах, я не понимал, что '{}' действует как заполнитель! Благодарю. –

 Смежные вопросы

  • Нет связанных вопросов^_^