Вы могли бы сделать это без find
, просто добавив оболочки:
for f in ./*/Dockerfile; do printf '%s\n' "${f%/*}"; done
./*/Dockerfile
соответствует именам файлов Dockerfile
, которые находятся в подкаталоге;расширение параметра ${f%/*}
удаляет последний слеш и все, что следует за ним.
*
не соответствует скрытым каталогам, и файл Docker в текущем каталоге также будет исключен.
В случае, когда ничего не совпадает, вы можете включить опцию shopt -s nullglob
, чтобы ./*/Dockerfile
расширялся до пустой строки, если совпадений нет.