-prune
exclui o conteúdo do diretório, mas não o próprio diretório. Isso acontece se -prune
for a única ação em um comando find
. Se houvesse qualquer outra ação (por exemplo, -exec
ou -print
), ela não produziria os nomes de diretório removidos. Por exemplo:
find ./ \( -path "*work*" -o -path "*ncvlog_lib*" \) -prune -o -type f \
-not -name "*.wlf" -not -name "*.vcd" -not -name "*.sim" -not -name "*vcs*" \
-print
BTW, você pode encurtar / simplificar seu comando find
usando um único predicado -regex
em vez de vários predicados -name
. por exemplo,
find ./ \( -path "*work*" -o -path "*ncvlog_lib*" \) -prune -o -type f \
-regextype awk -not -regex '.*\.(wlf|vcd|sim)$|.*vcs.*' -print
Isso produz uma saída idêntica à da primeira versão acima.