Я хочу записать сценарий удара, который будет использовать список всех каталогов, содержащих определенные файлы. Я могу использовать find
повторить путь каждого файла соответствия. Я только хочу перечислить путь к каталогу, содержащему по крайней мере один файл соответствия.
Например, учитывая следующую структуру каталогов:
dir1/
matches1
matches2
dir2/
no-match
Команда (поиск 'matches*'
) только произведет путь к dir1
.
Как дополнительный фон, я использую это для нахождения каждого каталога, который содержит Java .class файл.
find -name '*.class' -printf '%h\n' | sort -u
Из человек найти
:
-printf
формат
% h
Ведущие каталоги имени файла (все, кроме последнего элемента). Если имя файла не содержит косой черты (поскольку оно находится в текущем каталоге), спецификатор% h
заменяется на"."
.
GNU find
find /root_path -type f -iname "*.class" -printf "%h\n" | sort -u