5

Я хотел бы настроить простую систему фильтрации на моем сервере FreeBSD, которая позволяет мне создавать произвольные "представления" каталогов.

Например, я хотел бы иметь возможность перечислять все каталоги, которые соответствуют шаблону "* .mp3", но отображают только имя каталога.

Например, если я запустил команду в своей музыкальной папке, я хотел бы иметь возможность показать все каталоги, в которых есть mp3-файлы в одной команде, и все каталоги, в которых есть файлы flac, в качестве отдельной команды.

Команда find . -name "*.mp3" почти делает то, что я хочу, но отображает одну запись для каждого файла. Есть ли способ ограничить поиск одним результатом на каталог?

2 ответа2

4

Как насчет:

находить . -name '* .mp3' -print0 | xargs -0 -i dirname {} | uniq

Я получаю что-то вроде:

./mnt/mp3/Adicts/Complete Singles Collection(1995)

./mnt/mp3/Adicts/Rise and Shine(2002)

./mnt/mp3/Adicts/Songs of Praise(1981)

./mnt/mp3/Adicts/Twenty-seven(1992)

./mnt/mp3/Adicts/Ultimate Addiction

./mnt/mp3/Adicts/Very Best Of Adicts(1998)

3

Используйте этот скрипт:

find / -name "*.mp3" | grep -o '.*/' | sort | uniq > mp3files

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .