Исключить некоторые из & ldquo; find & rdquo; Результаты

Я использую команду find вместе с аргументом -exec something. Могу ли я исключить некоторые каталоги / имена, которые соответствуют регулярному выражению (что-то вроде rsync --exclude)? Хватит ли -prune, если я хочу исключить многие вещи?

1
задан 15 August 2012 в 11:39

2 ответа

Для рабочего решения (проверено на Ubuntu 12.04).

find ! -path "*dir1*" -iname "*.mp3"

будет искать файлы mp3 в текущей папке и подпапках, кроме подпапки dir1.

find ! -path "*dir1*" ! -path "*dir2*" -iname "*.mp3"

исключить dir1 И dir2.

0
ответ дан 15 August 2012 в 11:39

Можно исключить определенные каталоги при использовании команды находки в соответствии с Ubuntu.

Можно использовать команду находки следующим образом для нахождения всех каталогов кроме tmp каталога:

find /path/to/dest -type d \( ! -name tmp \) -print

Найдите все каталоги кроме tmp и кэша:

find /path/to/dest -type d \( ! -name tmp \) -o \( ! -name cache \) -print

-prune опция удостоверяется, что Вы не убываете в каталог:

find /path/to/dest -type d \( ! -name tmp \) -o \( ! -name cache -prune \) -print

Можно найти, что все *.pl находят кроме tmp и корневого каталога, входят:

find /  \( ! -name tmp \) -o \( ! -name root -prune \)  -name "*.pl" -print

Взятый от:

http://www.cyberciti.biz/faq/linux-unix-osx-bsd-find-command-exclude-directories/

1
ответ дан 15 August 2012 в 11:39

Другие вопросы по тегам:

Похожие вопросы: