Se você quiser excluir um caminho, faça com que ele corresponda corretamente na opção -path
. A opção requer que você escreva um caminho totalmente compatível, incluindo o prefixo de caminho absoluto, portanto, apenas /2012/
não é suficiente.
find /home/myid/dir-with100directories/ -mmin -5 \
-not -path '/home/myid/dir-with100directories/2012/*'
Ou:
cd /home/myid/dir-with100directories/
find . -mmin -5 -not -path './2012/*'
Se você quiser excluir qualquer pasta com o nome 2012
- com o GNU find
:
cd /home/myid/dir-with100directories/
find . -regextype posix-extended -not -regex '.*/2012\(/.*\)?'
Ou para remover diretórios com o nome 2012
:
cd /home/myid/dir-with100directories/
find . -type d -and -name '2012' -prune -o -print
O código acima irá imprimir tudo o resto como uma ação (veja aqui para mais informações).
Se você usar o Bash, poderá ignorar um diretório 2012
imediatamente:
shopt -s extlob
find /home/myid/dir-with100directories/!(2012) -mmin -5
A mesma ideia com o Zsh:
setopt extendedglob
find /home/myid/dir-with100directories/^2012 -mmin -5