Ainda está pesquisando os subdiretórios porque você não está usando -prun
.
Para -prune
a find
tree, você deve primeiro combiná-lo.
find / -type d ! -path / -prune -print
/boot
/home
/mnt
/opt
/esp
/dev
/proc
/root
/run
/srv
/sys
/tmp
/usr
/var
/etc
Eu tive que usar -path /
porque senão o primeiro diretório encontrado teria sido /
da raiz e ele seria -prune
'd então -print
ed.
Mas, como você pode ver, são os arquivos correspondidos que são -prune
d e nada mais. Então, se você corresponder -type f
, você não irá -prune
de nenhuma árvore - os arquivos regulares não têm subdiretórios.
Você provavelmente quer algo como:
find /opt/app/bss/sieb/fs_clone1/userpref \
-path \*path/to/ignore -prune -o \
! -type d -mtime -7
Isso é muito diferente da sua declaração. Em primeiro lugar, -path path/to/ignore
não funciona. Ele precisa corresponder a um caminho inteiro , e sua árvore inicial começa com /
, mas path/to/ignore
não faz nada. Então coloquei *
globstar, mas melhor - e provavelmente mais sucinto poderia ser:
cd /opt/app/bss/sieb/fs_clone1/userpref &&
find . -path ./path/to/ignore -prune -o \
! -type d -mtime 7
... o que tornaria sua saída muito menos confusa. De qualquer maneira, no entanto, todos os caminhos correspondidos pelo padrão -path
serão -prune
'd então não impressos porque -o
de distância para outra instrução e é apenas a última expressão da todo o script find
que é impresso automaticamente.
A última parte também é diferente, no entanto. Eu perdi -name '*'
porque todos os nomes correspondem a '*'
e você pode simplesmente não filtrar isso. E o ! -type d
é o que eu acho que muitas pessoas querem dizer quando dizem -type f
. O primeiro corresponde a qualquer tipo de arquivo que não seja um diretório - para incluir fifos e sockets e o resto dos estranhos. O último corresponde apenas a arquivos regulares. Talvez você realmente queira o último - mas eu apenas pensei em mencioná-lo.
De qualquer forma, quando tudo estiver dito e feito, o *path/to/ignore
é correspondido, podado e não impresso, então, de todo o resto, arquivos que não são do tipo directory e que foram modificados há 7 dias.