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