Comando 'find'

find /storage/svn/ -maxdepth 1 -mindepth 1 -type d -printf '%f \n'|sort|while read a; do sed "s/projetosweb/${a}/g" /tmp/aaa; done
#-------------------------------------------------

SetHandler mod_python
#PythonDebug on
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /storage/trac/projetosdseg
PythonOption TracUriRoot /trac/projetosdseg

#-------------------------------------------------

SetHandler mod_python
#PythonDebug on
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /storage/trac/projetosweb
PythonOption TracUriRoot /trac/projetosweb

#-------------------------------------------------

SetHandler mod_python
#PythonDebug on
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /storage/trac/richevent
PythonOption TracUriRoot /trac/richevent


listagem de todo o disco:
find / -xdev -printf '%i\t%u\t%g\t%m\t%s\t%p\n'
1962241 root root 550 4096 /root/
1962246 root root 644 176 /root/.bash_profile
1962280 root root 644 1917306 /root/reportlab-2.5.tar.gz
1962276 root root 644 498749 /root/Imaging-1.1.7.tar.gz


localizar os arquivos com mesmo inode:
find / -xdev -samefile ploned
/root/ploned
/root/operacao/ploned
/etc/rc.d/init.d/ploned

Multiplo -exec no mesmo comando

find /storage/svn/ -type d -print -exec chmod g+s {} \; -exec chown -R 53.53 {} \;

# Localizar os arquivos que terminam com .py
find . -name '*.py'
find . -name '*.py' -print

#Para localizar os arquivos que foram modificado nos últimos sete dias, podemos usar -mtime com o argumento -7:
find . -mtime -7 -name "*.pyo" -print

Se usarmos apenas o número 7 (sem o hífen), reculperamos apenas os arquivos que foram modificados há exatamente sete dias atrás:
find . -mtime 7 -name "*.pyo" -print

Para localizar os arquivos nos quais não mexi por pelo menos 30 dias, usamos +30:
find . -mtime +30 "*.pyo" -print

Para localizar os arquivos nos quais houve modificação nos ultimos 30 minutos
find . -mmin 30

Para procurarmos por arquivos que contenham o padrão cp, nos diretórios /etc e /usr, podemos usar:
find /etc /usr -name "*clt*" -print

Para localizar uma lista de diretórios dentro do diretório /etc, podemos usar a condição -type com o valor d, como vimos na tabela acima:
find /etc -type d -print

Modificando a propriedade de varios arquivos usando find
find -user marcellobs -maxdepth 1 -exec chown -r 48.503 {} \;
find /var/www/html/geopr/menutemas/ -user 1001 -exec chown 33 {} \;

Que tal remover os arquivos core mais antigos automaticamente.
find . -name core -ctime +4 -exec /bin/rm -f {} \;

Este abaixo remove todos os arquivos do tipo file (comum), no nível máximo de 1 subdiretório da arvore, ou seja somente no diretório atual.
find -maxdepth 1 -type f -exec rm -f {} \;
find -maxdepth 1 -type f | xargs rm -f
find zeocluster/Products/ -user root -delete

Buscar arquivo pelo seu conteudo:
find / -type f -exec grep -i remover {} \;
forma que o grep especifique apenas o nome do arquivo:

find / -type f -exec grep -il remover {} \;
find / -type f -print | xargs grep -i remover


Remover os arquivos Perl e C, que foram acessados a mais de 5 dias:
find / \(-name "*.pl" -o -name "*.c" \) -atime +5 -exec rm -v {} \;

Remover todos arquivos /log não acessados a mais de 1 dia ou tamanho maior que 100k
find /log/ -atime +1 -o -size 100k -delete

Desempacotar todos os arquivos com extensão tar.gz e tgz.
find . \( -name "*.tar.gz" -o -name "*.tgz" \) -print -exec tar -xvzf {} \;

Listar todo o conteúdo dos diretório em /etc, com as opções aflp:
find /etc -type d -printf '\n%p ' -exec ls -aflp {} \;


Para localizar todos os arquivos do sistema com os bits setuid ou setgid ativos:
find / -type f -a \( -perm 0400 -o -perm 0200 \) -print

Para identificar todos os arquivos com permisão de escrita universal:
find / -perm -2 -print

Referencias


Brito: Comando Find, recursos avançados
Brito: Brincando com comandos find, while, dirname e truques do bash

Comentários