LINUX.ORG.RU

исключение папок при поиске


0

0

вообщем то задачка банальная до жути найти все mp3 которые находятся в /mnt/new/, но не в папках:

/mnt/new/!sorting/!music/
/mnt/new/!new_music/
/mnt/new/!music_all/
/mnt/new/!music2/
/mnt/new/full_unsort/dvd-cd-from-serega/
/mnt/new/HardCore_Unsort/

додумался до

find /mnt/new/ -type f -name '*.mp3' ! -path '/mnt/new/!sorting/!music/*' ! -path '/mnt/new/!new_music/*' ! -path '/mnt/new/!music_all/*' ! -path '/mnt/new/!music2/*' ! -path '/mnt/new/full_unsort/dvd-cd-from-serega/*' ! -path '/mnt/new/HardCore_Unsort/*'

но как то уж очень устрошающе выглядит, может можно как то просще?

а как ты еще хочешь то? в именах директорий никакой логики, т.е. их исключение не автоматизировать.

isden ★★★★★
()
Ответ на: комментарий от GArik

Не сказано, есть ли там еще каталоги с подобными именами, перечислены только те, в которых не надо искать.

Топикстартеру: разве что можно регэкспом задать те пути, которые не надо искать - немного сократится запись за счет общей части.

YAR ★★★★★
()

емнип, такое исключение неэффективно: find будет спускаться в директории (уж точно не папки :P), но не выводить их, лучше -prune... например:

find ! \( \( -path <excluded_dir1> -o -path <excluded_dir2> ... \) -prune \)

аргументы внутренних скобок можно генерить циклом... или с помощью zsh-expansions

n01r ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.