Pular para o conteúdo principal
Comando Find, recursos avançados
Exemplos
- Encontra todos os arquivos (-type f) do diretório data,
gravando uma lista em (-fls /logs/removidos.txt), e depois
removendo todos os arquivos encontrados (xargs -0 rm -v)
$ find /data -atime +5 -type f -fls /logs/removidos.txt -print0 | xargs -0 rm -v
a opção -0 em (xargs -0 rm -v) é para que os espaços sejam respeitados pelo shell;
- Uma outra forma de fazer isso é usando a opção -I do xargs. Algo assim:
$ find /data -mtime +5 -type f | xargs -I{} bash -c "rm -fv '{}'; ls -l '{}'" > $LOGS/removidos
Neste caso, a opção -I do xargs joga para o token definido ({}) os dados
recebidos pela entrada padrão (|). Como o xargs atua sobre uma instrução
somente, usei o bash -c, pois por intermédio dele consigo executar o rm e o
ls -l.
Repare que as chaves estão entre apóstrofes e, assim sendo, espaços em
nomes de arquivos estão devidamente protegidos da interpretação do shell.
- Copia os arquivos do twiki, exceto os '.svn', os '.log', os ',v' e os '.lease', mantendo a estrutura original (--parents), o modo, o propríetário e o timestamp (-p); exibindo na tela as ações executadas.
find twiki/ ! \( -iwholename '*.svn*' -o -name '*.log' -o -iwholename '*,v' -o -iwholename '*.lease' \) -exec cp --parents -pv {} ~/dirti/ \;
Comentários