Если вы хотите исключить путь, вам нужно, чтобы он правильно совпал в опции -path
. Опция требует, чтобы вы указали полностью совпадающий путь, включая префикс абсолютного пути, поэтому просто /2012/
недостаточно.
find /home/myid/dir-with100directories/ -mmin -5 \
-not -path '/home/myid/dir-with100directories/2012/*'
Или же:
cd /home/myid/dir-with100directories/
find . -mmin -5 -not -path './2012/*'
Если вы хотите исключить любую папку с именем 2012
в ней - с помощью GNU find
:
cd /home/myid/dir-with100directories/
find . -regextype posix-extended -not -regex '.*/2012\(/.*\)?'
Или, чтобы удалить каталоги с именем 2012
:
cd /home/myid/dir-with100directories/
find . -type d -and -name '2012' -prune -o -print
Выше будет распечатывать все остальное как действие (см. Здесь для получения дополнительной информации).
Если вы используете Bash, вы можете сразу пропустить каталог 2012
:
shopt -s extlob
find /home/myid/dir-with100directories/!(2012) -mmin -5
Та же идея с Zsh:
setopt extendedglob
find /home/myid/dir-with100directories/^2012 -mmin -5