У меня есть каталог, содержащий несколько подкаталогов. Я хочу перечислить только те подкаталоги, которые содержат хотя бы один файл. Как я могу это сделать?
find . -mindepth 1 -maxdepth 1 -not -empty -type d
даст вам все непустые каталоги. Если вы хотите исключить каталоги, которые содержат только другие каталоги (но не файлы), один из других ответов может быть лучше ...
find . -type f -print0 | xargs -0 -n 1 dirname | sort -u
Как насчет:
find /nominated/directory -type f | sed 's%/[^/]*$%% | sort -u
Найти файлы - удалить часть имени файла - отсортировать однозначно.
В нем не будут перечислены подкаталоги, которые содержат только другие подкаталоги.