Como listar os maiores arquivos de um diretório ou filesystem excluindo outros filesystems montados abaixo deste?
É um problema localizar os maiores arquivos de um filesystem quando temos outros filesystems montados. Se estou com o filesystem /var com alto percentual de ocupação e preciso localizar quais os maiores arquivos que estão causando o problema, devo ler os arquivos deste filesystem mas ignorar os que estão sobre outros filesystems, por exemplo se eu tiver um /var/local.
Para isso, o comando find tem uma opção muito boa chamada -xdev. Ela considera apenas o filesystem especificado no path do comando find.
Da man page:
-xdev: Always evaluates to the value True. Prevents the find command from traversing a file system different from the one specified by the Path parameter.
Exemplo:
Listar os 20 maiores arquivos dentro do filesystem /var:
find /var -xdev -type f -ls |sort -n +6 | tail -20
Observação: No Solaris pode-se usar a opção -xdev ou -mount.
Referências:
- IBM Information Center, Comando find: http://publib.boulder.ibm.com/infocenter/systems/topic/com.ibm.aix.cmds/doc/aixcmds2/find.htm?tocNode=toc:front/front.cmb/0/0/2/0/5/29/
- Sun Microsystems Documentation, Comando find: http://docs.sun.com/app/docs/doc/816-0210/6m6nb7m9j?a=view

