Opção “-xdev” do comando find

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:

1. 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/

2. Sun Microsystems Documentation, Comando find: http://docs.sun.com/app/docs/doc/816-0210/6m6nb7m9j?a=view

Discussion Area - Leave a Comment