http://www.zago.eti.br/rm.txt FAQ e dicas sobre o comando rm, remover arquivos e ou diretórios. Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. Veja também no manual: man rm rm --help xman ******************************************************** ATENÇÃO!, CUIDADO!, redobre os cuidados e atenção com uso do "rm" Uso do comando find combinado com rm, mv e outros comandos destrutivos pode causar serios problemas, um simples erro de interpretação do comando pode obter resultados diferente do esperado, quando executado como root pode danificar todo o sistema, todo cuidado é pouco. Diminua os riscos, pratique em ambiente de testes, antes de remover arquivos, tente conferir os resultados com "echo" ou "ls", depois de confirmado os resultados, então faça a troca para "rm". Alguns exemplos de uso do comando echo em lugar de rm, na linha de comando ou script, troque rm por echo, os arquivos que listar na tela são os memos que serão apagados quando executar a linha de comando com rm, ex. pra testar, (com echo ou ls -la em lugar de rm). find /home/zago/guiaz/ -name "*.txt~" -exec echo {} \; find /home/zago/guiaz/ -name "*.txt~" -exec ls -la {} \; Ou redirecione a saida para arquivo e depois verifique o conteúdo do arquivo com seu editor de texto preferido, exemplo da linha de comando acima, redirecionando o resultado para /tmp/meuteste.txt find /home/zago/guiaz/ -name "*.txt~" -exec ls -l {} \; > /tmp/meuteste.txt Mais dicas e detalhes sobre uso do find combinado com rm, veja no FAQ; http://www.zago.eti.br/find.txt ******************************************************** http://olinux.uol.com.br/artigos/363/print_preview.html Recuperando arquivos apagados - parte II Por: Guilherme Cox ( 01/08/2001 ) About undelete unrm: unrm is a small shell utility which can, under some circumstances, recover almost 99% of your erased data (similar to DOS's undelete) http://freshmeat.net/projects/unrm/ ******************************************************** Nos exemplos a seguir não inclui o caminho, portanto assumindo que o comando será dado para o diretorio local, mas quando não for para o diretorio corrente deve incluir o caminho completo antes do nome do arquivo ou diretorio. ex: estando em /home e apagar arq1.txt em /home/zago/teste/arq1.txt digite rm /home/zago/teste/arq1.txt rm = remove arquivos, deleta, exclue ... formato: rm arq1 remove(apaga) o arq1 rm arq arq2 arq3 ... rm eu.doc / rm leiame.txt manual.html win95.w95 rm -rf apaga tudo, do diretorio presente para baixo, este comando na / apaga todo o HD. Apagar arquivos ou diretorios com caracteres estranhos ou simbolos Assumindo que voce ja' esta' no diretorio do arquivo para remover por exemplo um arquivo com nome -f use uma das alternativas: rm ./\-f rm ./"-f" rm ./-f rm -- -f rm -f *f* rm * rm '-*' rm -f ./-f rm -R popo remove o diretorio popo Nota: você só poderá remover um diretório vazio, isto é, antes você terá que remover todos os arquivos abaixo dele. *************************************************************************** O comando rm -r pede confirmação para excluir cada arquivo, para eliminar a pergunta edite arquivo .bashrc e procure uma linha com algo do tipo: alias rm rm -i alguma coisa assim e comente ela. esse arquivo fica no home do usuário que voce logou. efetue um novo login e use o rm. Comentando essa linha ele vai parar de fazer perguntas. -i terá possibilidade de confirmar a remoção do arquivo. -f para não pedir confirmação *************************************************************************** Arquivos com nomes que impedem comandos rm, cp, mv, e etc... Manipular arquivos que iniciam o nome com -- e outras situações que tenha no nome simbolos que voce não acha no teclado, quando a tecla tab não resolve pra completar o nome e outras situações que dificulta a digitação do nome ou não aceita o comando, tente fazer com o "mc", ou pelo ambiente gráfico com seu navegador de diretórios, por exemplo konqueror. *************************************************************************** Apagar o arquivo mais velho ou o mais novo no diretório. Cuidado com o uso dos exemplos a seguir, em diretório errado ou diretiva errada pode causar estragos irreversiveis. Apagar o arquivo mais _velho_ no diretório: rm `ls -t | tail -n1` apagar o arquivo mais _novo_ no diretório rm `ls -rt | tail -n1` Pra não fazer pergunta acrescente -rf, ex. rm -rf `ls -rt | tail -n1` *************************************************************************** Alguns scripts pra apagar arquivos Apagar arquivos que estão listados em /root/apagaarq.txt #!/bin/bash cd /root for ARQ in `cat apagaarq.txt` do rm -f $ARQ done Pra varrer todo o HD a procura de determinado tipo de arquivo e depois apaga-los, por exemplo, localizar e apagar todos .mp3. #!/bin/bash cd /root updatedb locate .mp3 > /root/apagaarq.txt for ARQ in `cat apagaarq.txt` do rm -f $ARQ done Faça testes antes de executar, comente a linha do rm ou substitua rm por echo, ex. troque a linha rm -f $ARQ por echo $ARQ, exemplo de script que não apaga os arquivos mas exibe no terminal o que seria apagado com rm. #!/bin/bash cd /root updatedb locate .txt > /root/apagaarq.txt for ARQ in `cat apagaarq.txt` do #rm -f $ARQ echo $ARQ done cuidado com o uso do locate, ele varre todo o HD, pra refinar a pesquisa a somente um diretório use outra forma de pesquisa em substituição ao locate, pode editar o arquivo diretamente, utilizar outras ferramentas pra criar a lista de arquivos, tais como find e ls, exemplo pra substituir o locate por find pra localizar todos os arquivos que contenha pdf no nome e esteja abaixo de /home/zago: find /home/zago -print |grep -i "pdf" > apagaarq.txt Ou com ls pra localizar todos os .pdf, observe que o exemplo com ls abaixo localizará somente os arquivos terminados em .pdf em minusculo enquando o find acima não diferencia maiusculas de minusculas e procura em qualquer parte do nome. ls /home/zago/guiaz/*.pdf > apagaarq.txt então o script com find fica assim: #!/bin/bash cd /root find /home/zago -print |grep -i "pdf" > /root/apagaarq.txt for ARQ in `cat apagaarq.txt` do #rm -f $ARQ done Ou divida o script em duas partes, a primeira pra criar apagaarq.txt, faça as devidas correções e modificações no apagaarq.txt, utilizer outras ferramentas pra manipular este arquivo ou edite na mão, pra depois executar o segundo script pra apagar somente o que restou em apagaarq.txt, ex. Criar a lista de arquivos a serem apagados. #!/bin/bash cd /root updatedb locate .txt > /root/apagaarq.txt Depois de ajustado o apagaarq.txt execute este script: #!/bin/bash cd /root for ARQ in `cat apagaarq.txt` do rm -f $ARQ done Já que tem a lista de arquivos que deseja apagar, pode usar outras formas de comando, por exemplo com xargs, o uso do xargs pode ser útil quando a lista for muito grande e ocorrer erros, então use a diretiva -l pra deletar em lotes, por exemplo, pra fazer diveros rm apagando 50 arquivos de cada vez: cat apagaarq.txt | xargs -l50 rm -f O resultado é o mesmo que: cat apagaarq.txt | xargs rm -f Pode substituir no script acima o rm -f $ARQ por outro comando que faça o mesmo, como os exemplos acima ou as linhas de comando a seguir: Outras opções e formas de comando que obtem o mesmo resultado: Apagando todos os arquivos em uma tacada só: xargs -r rm -f < apagaarq.txt Apagar um arquivo por vez, um rm pra cada linha, um após o outro: xargs -n1 rm -f < apagaarq.txt Pra tentar superar o problema de arquivos com espaços no nome, tente usar -i: xargs -i rm -f {} < apagaarq.txt Script para remover todos .mp3 do disco #!/bin/bash for arq in $(find / -name *.mp3) do rm -rf $arq done Remover de um diretório especifico, informe o caminho completo em lugar de / do exemplo acima. OBS. Nomes de arquivo com espaços, acentos ou simbolos especiais pode causar problemas, pra resolver o problema de espaços no nome coloque $ARQ entre aspas ou tente o exemplo acima com -i, se mesmo assim não funcinar tente correção dos nomes dos arquivos, na página do Aurelio tem a função zzarrumanome, pra instalar funções zz veja dicas em: http://www.zago.eti.br/modelos/funcoeszz.txt *************************************************************************** RM em um mesmo arquivo em varios sub-diretorios > Imagine que no diretório home exista 50 pastas de 50 usuários. > e, dentro de cada diretório exista um arquivo "trash". > Como faço para apagar todos os arquivos "trash" de dentro dos > diretórios, sem que eu precise entrar um a um ? RESP1 rm -rf /home/*/trash/* RESP2 Supondo os diretórios vazios: # rmdir /home/*/trash RESP3 Use um script shell pra listar todos os diretórios em /home e depois entrar em cada um, como: users=`ls /home` for user in users; do cd /home/$user rm trash done Mas precisa de root pra fazer isso... RESP4 eu faria assim find /home -name trash -exec rm {}\; antes de rodar isso para valer troque o rm peloc echo para ver se e isso mesmo que quer. *************************************************************************** Alguns exemplos de uso do comando find pra localizar e rm pra apgar. Encontra e apaga todos os temporarios .txt~ em /home/zago/guiaz, ideal pra usar em scripts, não pede confirmação. Evite acidentes, não corra riscos, teste o comando antes de executar a linha de comando ou script, troque rm por echo, os arquivos que listar na tela são os memos que serão apagados quando executar a linha de comando com rm, ex. pra testar, (com echo em lugar de rm). find /home/zago/guiaz/ -name "*.txt~" -exec echo {} \; Exemplo pra colocar no script, apaga sem pedir confirmação. find /home/zago/guiaz/ -name "*.txt~" -exec rm {} \; O mesmo comando acima modificado pra pedir confirmação, com -ok pede pede pra confirmar a exclusão, ideal pra usar na linha de comando. find /home/zago/guiaz/ -name "*.txt~" -ok rm {} \; Ex. [zago@faqcl9 guiaz]$ find /home/zago/guiaz/ -name "*.gif" -ok rm {} \; < rm ... /home/zago/guiaz/tmp/admcorreiopq.gif > ? y < rm ... /home/zago/guiaz/zagop.gif > ? n < rm ... /home/zago/guiaz/pinguin.gif > ? n Procura em todos os diretórios e apagar todos os arquivos .old, pede confirmação pra cada um. find / -name "*.old" -ok rm {} \; *************************************************************************** *************************************************************************** Subject: Re: (linux-br) Deletar subdiretório emsérie. Voce pode tentar assim: [ rm -rf "dir_or_file" ] ou [ rm -rf "A*" ] ou [ rm -rf TRASH* ] rm => remover; -r => recursive( deleta subdiretorio dentro do diretorio pai; -f => force; nao pede confirmacoes ( isto e perigoso ) mas uso sempre afinal de contas quer mesmo apagar ( isto so ajuda, he mais rapido). > > Gostaria de saber como faço para apagar todos os arquivos TRASH de cada > > subdiretório sem ter que entrar em cada um (são mais de 4000) e sem alterar > > mais nada. > > cd /var/neomail/users > find . -name TRASH -exec rm {} \; *************************************************************************** > Pois bem, eu preciso remover apenas os que forem de 8 dias atras, > deixando apenas o archives dos ultimos 7 dias. find /path -type f -not -ctime 8 -print | xargs rm Um indispensavel "man xxx" e' sempre importante antes de confiar em mensagens na lista... :) No seu caso voce tambem pode colocar "-name '*.log'" para restringir a acao apenas nos arquivos de log. *************************************************************************** Remocao de arquivos iniciados em - Uma pergunta que aparece com bastante frequencia nas listas de discussao de Unix e como remover arquivos que possuam nomes que comecem com "-". O Unix utiliza o caracter "-" como indicativo de flags para seus comandos. Por exemplo, caso tenhamos um arquivo chamado "-a" e tentemos remove-lo % rm -a rm: illegal option -- a Usage: rm [-firRe] [--] file ... A operacao nao foi efetuada porque o argumento fornecido ao comando "rm" foi interpretado como uma opcao e nao como o nome de um arquivo. Para contornarmos este problema, basta preceder o nome do arquivo por um outro caracter "-", como exemplificado abaixo: % rm - -a *************************************************************************** Removendo arquivos com o rm: O rm é usado para apagar arquivos de forma definitiva, sem poder recuperá-los. Conheça alguns parâmetros desse comando: -f remove sem solicitar confirmação. -i solicita confirmação antes de remover. -r remove todos os arquivos e subdiretórios do diretório especificado, inclusive o próprio. Veja alguns exemplos: # rm arq.ext # rm arq1 arq2 # rm -i arq* # rm -rf meudir # rm -f /dir/arq.ext Cuidado com o comando "rm -rf /", isto irá apagar tudo em seu sistema! *************************************************************************** > Gostaria de uma sugestão de como remover diretório, pois estamos > criando uma aplicação para tal, semelhante ao RMDIR. Temos que usar o > UNLINK? Pois não conseguimos apagar o diretório mesmo vazio. Ah? Antes de verificar se o diretório está vazio use um 'ls -la' para verificar se há ou não arquivos ocultos (precedidos por um "."). Aí apague-os e depois dê um 'rmdir'. Se você tiver certeza que vai apagar um diretório use o 'rm -r', ele vai remover o diretório e tudo mais que estiver dentro dele. *************************************************************************** Remocao de arquivos com nomes estranhos Uma complementacao bastante interessante sobre a dica veiculada no dia 5 de maio me foi enviada pelo Alexandre Niero, do Instituto de Computacao da Unicamp. Ai vai: Na dica veiculada em 02/05/97, sobre a remocao de arquivos, acredito ser importante acrescentar a dica de como remover os arquivos que contem caracteres especiais, caracteres de controle de shell, caracteres tipo wildcards, arquivos contendo o caracter espaco, e caracteres nao digitaveis. E importante que o administrador (principalmente Unix) saiba como remove-los. Os conceitos tambem podem ser aplicados na movimentacao e copia dos arquivos. 1- Caracteres Especiais: Sao exemplos de caracteres especiais e de controle de shell: (, ), #, $, & Exemplos de nomes de arquivos: #abc (rre )letter $sh &tt Para remover os arquivos iniciados com os caracteres acima utilizar: rm ./ ou rm "" ou ainda rm '' exemplos: rm ./#abc rm "(rre" rm "&a" rm '$sh' 2- Arquivos com nomes de caracteres tipo wildcard: Exemplo de wildcard: * exemplo de nomes de arquivo com wildcards: a* *a *a* Estes caracteres podem causar um enorme "dano", removendo coisas inesperadas. Veja o exemplo: user@host% ls -al total 3 -rw-r--r-- 1 user group 0 May 7 19:32 *ab* drwxr-xr-x 2 user group 512 May 7 19:32 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:32 abg -rw-r--r-- 1 user group 0 May 7 19:32 dab -rw-r--r-- 1 user group 0 May 7 19:32 dabg user@host% rm *ab* user@host% ls -al total 3 drwxr-xr-x 2 user group 512 May 7 19:33 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ O comando rm *ab* acima removeu TODOS os arquivos do diretorio!!! Uma forma segura e utilizar o nome do arquivo desejado entre aspas duplas ou simples: rm "*ab*" rm '*ab*' exemplo: user@host% ls -al total 3 -rw-r--r-- 1 user group 0 May 7 19:32 *ab* drwxr-xr-x 2 user group 512 May 7 19:32 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:32 abg -rw-r--r-- 1 user group 0 May 7 19:32 dab -rw-r--r-- 1 user group 0 May 7 19:32 dabg user@host% rm *ab* user@host% ls -al total 3 drwxr-xr-x 2 user group 512 May 7 19:32 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:32 abg -rw-r--r-- 1 user group 0 May 7 19:32 dab -rw-r--r-- 1 user group 0 May 7 19:32 dabg Assim, apenas o arquivo *ab* foi removido, conforme seria desejavel 3- Arquivos com caracter espaco: Sao arquivos que foram criados com caracteres de espaco no nome. Este caracter pode estar no inicio ou no meio do nome do arquivo. Exemplos: user@host% ls -al total 3 -rw-r--r-- 1 user group 0 May 7 19:45 a b c drwxr-xr-x 2 user group 512 May 7 19:45 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:42 a b c user@host% rm a b c rm: a: No such file or directory rm: b: No such file or directory rm: c: No such file or directory estes arquivos podem ser removidos utilizando-se o nome entre aspas duplas ou simples: user@host% rm "a b c" ' a b c' user@host% ls -al total 3 drwxr-xr-x 2 user group 512 May 7 19:45 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ 4- Caracteres nao digitaveis: Exemplos sao arquivos com caracteres de controle, caracteres especiais de outros Sistemas operacionais ou contendo acentos que nao possam ser reproduzidos na console atual. Estes arquivos apenas podem ser removidos utilizando-se a opcao de remocao interativa, ou rm -i. Neste caso deve ser digitado um y ou Y para confirmar quais arquivos devem ser excluidos. A opcao interativa e bastante segura, e pode ser utilizada para remover tambem os arquivos citados nos topicos anteriores. Exemplo: user@host% ls -al total 3 -rw-r--r-- 1 user group 0 May 7 19:45 a b c -rw-r--r-- 1 user group 0 May 7 19:45 *ab* drwxr-xr-x 2 user group 512 May 7 19:45 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:42 a b c -rw-r--r-- 1 user group 0 May 7 19:32 abg -rw-r--r-- 1 user group 0 May 7 19:32 dab -rw-r--r-- 1 user group 0 May 7 19:32 dabg user@host% rm -i * rm: remove ` a b c'? y rm: remove `*ab*'? y rm: remove `a b c'? n rm: remove `abg'? y rm: remove `dab'? y rm: remove `dabg'? y user@host% ls -al total 3 drwxr-xr-x 2 user group 512 May 7 19:45 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:42 a b c Alexandre Niero niero@dcc.unicamp.br *************************************************************************** De: Felipe Leme Para: Diogo Teixeira Rossato Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) apagar arquivos... Data: 09 Jul 2002 07:51:04 -0700 Diogo Teixeira Rossato wrote: ou ainda: find / -name arquivo -exec rm {} \; Embora essa solucao tambem funcione, eu prefiro o xargs por 2 motivos: - a sintaxe do find -exec e' "meio" exdruxula (sic) - para cada arquivo encontrado ele rodara' um processo rm, enquanto que o xargs rodara' apenas um processo (se bem que se o numero de arquivos for muito, muito grande, o rm do xargs falhara', pois existe um limite no numero de argumentos do shell) De qq forma, essa e' uma das virtudes do shell (ou mesmo perl): existem varias maneiras de realizar a mesma tarefa (outra opcao seria o rm `find `) Felipe *************************************************************************** De: Claudio Matsuoka Para: Rogerio Araujo(Terra) Cc: lista Assunto: Re: (linux-br) vejam o problema e a solução - rejecting connections on daemon Daemon0 Data: 18 Aug 2002 09:05:34 -0300 On Sat, 17 Aug 2002, Rogerio Araujo(Terra) wrote: > o retorno foi : "lista longa demais para o comando rm" > (...) > então fui pacientemente fazendo como fazia no cobol , apagando letra a letra > e número a número (rm -f a*, rm -f b*, etc) , pode ser que exista outra > forma , mas nunca me preocupei em descobrir. Caso precise de novo: $ find . -type f -exec rm {} \; ou $ for i in *; do rm $i; done *************************************************************************** De: Jorge Godoy Para: Carlos Thadeu Duarte Santos Cc: 'Cadu' , linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) RES: Remover TODOS os arquivos da pasta. Data: 07 Mar 2003 10:40:53 -0300 Carlos Thadeu Duarte Santos writes: > Eu não tenho certeza, mas ***acho*** que existe uma pequena > diferença, ou o r ou o f, um dos dois tem que ser em letra > maiúscula. Como estou na frente do Win não dá para afirmar. Dá uma > lida na ajuda do rm. Esta é uma questão do shell. O comando 'rm' é interno ao shell. Se para ele não houver diferença, tudo bem. Se houver, o 'R' é quem deve ser maiúsculo. Consulte a documentação do shell em questão para saber o que usar. Sds, *************************************************************************** De: Alexander Para: linux-br@bazar.conectiva.com.br Assunto: (linux-br) Fwd: (linux-br) RES: Remover TODOS os arquivos da pasta. Data: 10 Mar 2003 09:17:14 +0000 Para apagar o tmp inteiro, inclusive. rm -rf /tmp Para apagar todos os arquivos e diretórios do tmp. rm -rf /tmp/* Mais falta o rm -rf /tmp/.* para apagar os ocultos também. Apenas isso. O asterisco apaga os arquivos comuns. Para apagar os ocultos você teria que especificar como .* Seu comando é meio sinistro, você pediu para apagar o diretório /tmp e o arquivo/diretório -rf também. Só que o rm reconheceu o -rf como parâmetro, pelo menos é isso o que parece. Você deve usar os parâmetros do rm antes do caminho que deseja apagar. Cuidado com a sintaxe que você está usando, não seria nada agradável executar uma exclusão equivocada. Já exclui o diretório lib do meu linux por afobação. Há uma historinha de que uma vez um administrador digitou rm -rf / tmp, ou seja, com um espaço antes do tmp, ele não percebeu o pressionamento do espaço antes do tmp e deu enter. Isso fez um rm -rf na raiz e em seguida no tmp, ou seja, apagou tudo do Linux. Resultado: demissão sumária e um susto descomunal. O rm é sinistro, é melhor usar a sintaxe que o man diz para usar. Abraços! Alexander ====== Oi pessoal, Tenho uma dúvida muito idiota, mas é interessante: Por que que, quando eu digito # rm /tmp/* -rf ele remove tudo, MENOS os arquivos e pastas ocultas? Como fazer para remover tudo, com um só comando ( Ah! e sem reclamar que é impossível remover . e .. ) ? *************************************************************************** De: Ricardo Guedes Para: Carlos A Silva , linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Script p/ deletar arquivos !!! (XL) Data: 14 Mar 2003 02:51:47 -0400 Acho que este resolve! #!/bin/bash dia=`date +%e`; diasantes=5; diadec=$(( $dia - $diasantes )); if [ "$diadec" -lt 10 ] then filtro="`date +%b' '$diadec`"; else filtro="`date +%b' '$diadec`"; fi z=`ls -l | grep "$filtro" | cut -d : -f 2 | cut -d " " -f 2`; echo $z; rm -rf $z; Agora basta adicionar o cron! *************************************************************************** De: Hamacker Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Script p/ deletar arquivos !!! (XL) Data: 14 Mar 2003 15:04:00 -0300 Na pagina : http://www.gladisto.hpg.ig.com.br/artigos/cuidados_com_backup/nocoes_backup_no_linux.htm tem um script interessante que apaga arquivos que nao foram tocados nos ultimos 5 dias, talvez voce precise apenas adapta-lo para sua necessidade. O script tá bem fácil de compreender. Carlos A Silva wrote: Pessoal, Preciso de um script que deverá ser executado todas as madrugadas, deletando os arquivos de uma determinada pasta que tenham sido gerados a mais de (2) dias. Ou seja, dirariamente (às 2h da manhã), todos os arquivos que estiverem na pasta e tiverem sido criados a mais de 2 dias deverão ser excluídos. *************************************************************************** De: Vagner Machado Para: 'linux-br@bazar.conectiva.com.br' Assunto: RE: (linux-br) Script p/ deletar arquivos !!! (XL) Data: 17 Mar 2003 17:21:08 -0300 Acho que este comando eh suficiente ...!!! Qualquer duvida eh soh falar .... ;-) #-------------- corte aqui ----------------# #!/bin/bash find /tmp/pasta -atime +2 -type f -exec rm -f {} \; #-------------- corte aqui ----------------# Atts, Machado -----Original Message----- From: Carlos A Silva [mailto:ciclum@uol.com.br] Sent: quinta-feira, 13 de março de 2003 12:51 To: linux-br@bazar.conectiva.com.br Subject: (linux-br) Script p/ deletar arquivos !!! (XL) Pessoal, Preciso de um script que deverá ser executado todas as madrugadas, deletando os arquivos de uma determinada pasta que tenham sido gerados a mais de (2) dias. Ou seja, dirariamente (às 2h da manhã), todos os arquivos que estiverem na pasta e tiverem sido criados a mais de 2 dias deverão ser excluídos. Grato por qualquer ajuda... *************************************************************************** De: Julio Biason Para: linux-br Assunto: Re: (linux-br) "rm" não pede confirmação para excluir arquivo Data: 04 Apr 2003 19:07:31 -0300 Edson Ahlert : > Observei uma coisa curiosa e gostaria de saber como resolver: toda vez que > excluo um arquivo (rm) como usuário normal o linux não pede confirmação para > exclusão. Apaga direto. Como root é pedido confirmação. Onde mudo isto??? Nos alias. No /etc/profile deve ter uma verificacao de que, se tu for root, o alias para o rm e' rm -i O mesmo nao ocorre para os usuarios normais. Agora depende do que tu quer fazer (root nao pede / usuario normal pede). -- *************************************************************************** De: Antonio Claudio Responder-a: claudio@nettravelrm.com.br Para: Edson Ahlert , Linux-BR Assunto: Re: (linux-br) "rm" não pede confirmação para excluir arquivo Data: 05 Apr 2003 00:04:35 -0400 Em Sex 04 Abr 2003 17:30, Edson Ahlert escreveu: > Olá pessoal!!! > > Tenho o linux (CL 8) rodando em minha máquina. > > Observei uma coisa curiosa e gostaria de saber como resolver: toda vez que > excluo um arquivo (rm) como usuário normal o linux não pede confirmação > para exclusão. Apaga direto. Como root é pedido confirmação. Onde mudo > isto??? Interessante, pois o meu CL8 pede a confirmação, já que o alias para o comando rm está escrito para fazer isto, veja como está: [claudio@tux claudio]$ alias ..... alias rm='rm -i' .... Verifique se o seu /etc/bashrc está com o alias acima e caso não esteja é só criar. -- *************************************************************************** De: Artur Coutinho Responder-a: arturpc@uai.com.br Para: Anderson Silva Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Remover arquivo corrompido Data: 14 Apr 2003 21:22:10 -0300 Em Seg 14 Abr 2003 12:57, Anderson Silva escreveu: > voce conhece o comando "chattr" ? > > On Sat, 2003-04-12 at 22:51, Artur Coutinho wrote: > > [root@spider log]# chmod 777 messages > > chmod: changing permissions of `messages': Operação não permitida Olá, Anderson! Essa era a dica que faltava! Realmente o arquivo estava cheio de atributos que o tornavam "indeletável". Foi só excluir os atributos e consegui removê-lo. Aliás, descobri uma grande falha pessoal: ainda não conhecia a dupla chattr e lsattr. Quanta ignorância! Muito Obrigado, *************************************************************************** De: AWK Para: Edson Ahlert Cc: linux-br Assunto: Re: (linux-br) Script para DELETAR arquivos... Data: 28 May 2003 10:27:20 -0300 On Mon, 26 May 2003, Edson Ahlert wrote: > Como posso através do comando FIND localizar arquivos executáveis > (binários), pois possuem apenas as permissões de execução (estes arquivos, > aqui no meu caso, são arquivos gerados na compilação pelo kylix, freepascal, > etc. e como ocupam muito espaço gostaria de eliminá-los.). > > Gostaria de criar um script para eliminar estes arquivos!!! > Oi Edson, Experimente: $ find . -type f -name "*.exe" -exec rm -rf {}\; [ ]'s *************************************************************************** De: Edson Ahlert Responder-a: Edson Ahlert Para: linux-br Assunto: Opinião/dúvidas sobre o script... Data: 15 May 2003 22:14:40 -0300 Olá!!! Montei o script abaixo para localizar alguns arquivos no /home/ e removê-los... gostaria de saber se o find é a maneira mais ágil de fazê-lo??? ---------------------------------------------------------------------------- ----------- #!/bin/bash # Encontra e remove arquivos com extensao .o find /home/ -name "*.o" -print | xargs rm # Encontra e remove arquivos com extensao .~* find /home/ -name "*.~*" -print | xargs rm # Encontra e remove arquivos com extensao .dcu find /home/ -name "*.dcu" -print | xargs rm # Apaga os arquivos do /home/tmp rm /home/tmp/* -rf # Mostra os 20 usuários que mais ocupam espaço em disco du -sk * | sort -nr | head -n 20 ---------------------------------------------------------------------------- ----------- Também tenho uma dúvida quanto a apagar arquivos compilados no kylix e freepascal (executáveis). Como posso localizar um arquivo deste tipo, pois não possui extensão??? Apenas a permissão de execução... Desde já obrigado por qualquer ajuda, *************************************************************************** De: Anderson Lizardo Para: Nery Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) a cada dez minutos Data: 18 May 2003 19:37:34 -0300 Em Segunda, 08 de Dezembro de 2003 11:56, Nery escreveu: > Como faço para meu linux excluir todos os arquivos de uma pasta a > cada dez minutos automaticamente? > Obrigado pela ajuda Use o fcron (http://freshmeat.net/projects/fcron/). *************************************************************************** De: Gustavo Andreoni Vieira d'Almeida Para: Nery , linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) a cada dez minutos Data: 18 May 2003 21:46:00 -0300 Vá em /etc/crontab edite seu corntab para a linha horaria executar todo em cada 10 minutos, dessa forma: #Runparts * 10 * * * * root run-parts /etc/cron.hourly e resto fica como está. entra co diretório /etc/cron.hourly e crie um arquivo touch arquivo.sh vi arquivo.sh dentro do arquivo: #! /bin/bash rm -rf /diretorio/a/ser/apagado saia e transforme em executavél: chmod a+x arquivo.sh > Como faço para meu linux excluir todos os arquivos de uma pasta a cada dez > minutos automaticamente? > Obrigado pela ajuda ************************************************************************** De: Cleber P. de Souza Para: 'Edson Ahlert' Cc: linux-br@bazar.conectiva.com.br Assunto: (linux-br) RES: (linux-br) Script para apagar arquivos... Data: 22 May 2003 09:17:10 -0300 Você pode tentar o seguinte para facilitar. Execute o comando updatedb, este comando irá criar uma base de dados com todos os arquivos do seu servidor, existe parâmetro para ele catalogar apenas a partir de um diretório. Depois use o comando locate para procurar na base. Pro exemplo, para localizar todos os arquivos *.o localizados dentro dos homes, use: locate *.o | grep "/home/" Com esse comando você irá consultar os arquivos com a condição que você deseja. Para excluir utilize: rm -f `locate *.o | grep "/home/"` Espero ter ajudado. ************************************************************************** De: AWK Para: Uendel Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) socorro perdi meus arquivos !!! Data: 28 May 2003 10:29:19 -0300 On Tue, 27 May 2003, Uendel wrote: > Pessoal qual o metodo mais eficiente de recuperar arquivos no linux , se > eu nao conseguir recuperar meu arquivo vou perder 1 dia de serviços, e > estou e serios apuros. o que devo fazer ??? como agir ??? > configuração > linux 7.0 conectiva server Uendel, Previnir é melhor do que remediar, faça SEMPRE backup dos arquivos importantes. Mas, talvez haja uma possibilidade já que você está usando a versão 7 do conectiva, suponho que o file system seja o ext2, não é? E considerando que você não tenha instalado nada após o incidente. Se seu file system for o ext2 use o mc (Midnight Commander) para recuperá-los. Assim: 1) execute o comando: $ mc 2) Vá até a opção Command/Undelete files (ext2fs only) 3) Na caixa de diálogo que aparece digite: /#undel:hda2 OBS1.: " hda2 é só uma ilustração. Mude para partição real em que o Linux está instalado!!" OBS2.: O mc não irá recuperar os arquivos com os nomes originais será alguma coisa parecida com: 0056969, mas o conteúdo é o mesmo. Então você precisará usar o utilitário 'file' para descobrir o tipo de arquivo ou o 'grep' para pesquisar o conteúdo. [ ]'s ************************************************************************** De: Ricardo Guedes Assunto: Re: (linux-br) Script p/ deletar arquivos !!! (XL) Data: 05 Jun 2003 16:39:22 -0300 ############# Script by Ricardo Guedes ################# #!/bin/bash dia=`date +%e`; diasantes=2; diadec=$(( $dia - $diasantes )); if [ "$diadec" -lt 10 ] then filtro="`date +%b' '$diadec`"; else filtro="`date +%b' '$diadec`"; fi z=`ls -l | grep "$filtro" | cut -d : -f 2 | cut -d " " -f 2`; rm -rf $z; ############# Script by Ricardo Guedes ################# Agora basta fazer a parte do crontab!!! Ricardo Guedes http://babylinux.dyndns.org/ ----- Original Message ----- From: "Jorge Godoy" To: "Carlos A Silva" Cc: Sent: Thursday, March 13, 2003 6:06 PM Subject: Re: (linux-br) Script p/ deletar arquivos !!! (XL) > "Carlos A Silva" writes: > > > Ou seja, dirariamente ************************************************************************** De: Anderson Lizardo Para: Edson Ahlert Cc: linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) Script para DELETAR arquivos... Data: 27 May 2003 20:28:01 -0300 Em Segunda, 26 de Maio de 2003 18:54, Edson Ahlert escreveu: > Como posso através do comando FIND localizar arquivos executáveis > (binários), pois possuem apenas as permissões de execução (estes > arquivos, aqui no meu caso, são arquivos gerados na compilação pelo > kylix, freepascal, etc. e como ocupam muito espaço gostaria de > eliminá-los.). A solução recomendável é criar um Makefile (com um alvo "clean", por exemplo) para os projetos que criam estes arquivos pois, por engano, o find pode apagar outros arquivos com permissão de execução que não sejam binários executáveis (como arquivos importados de uma partição FAT). Mas se você ainda deseja implementar uma solução com o find, utilize a opção "-perm". Mais informações sobre a criação de um Makefile: info make Sobre a opção "-perm" do find: man find -- Anderson Lizardo ************************************************************************** De: Antonio Claudio Responder-a: claudio@nettravelrm.com.br Para: edmilson , Linux-BR Assunto: Re: (linux-br)root nãoapaga arquivo ????? Data: 05 Jul 2003 10:42:58 -0400 Em Sab 05 Jul 2003 08:16, edmilson escreveu: > Ola pessoal, > > estou diante de uma situação curiosa ... o usuário root não consegue > apagar um "determinado" arquivo ... o que pode estar acontecendo ????? Dê uma olhadinha no comando chattr (info chattr). Ele controla outros atributos dos arquivos no sistema de arquivos EXT. Pode ser que seja o seu caso. Além disso veja se a maneira que você está usando é mesmo a melhor para eliminar os arquivos. -- [ ]s, ************************************************************************** De:  Thiago Macieira Para:  Maiquel , Lista Linux-BR Assunto:  Re: (linux-br)Recuperar arquivos deletados Data:  Wed, 23 Jul 2003 03:07:18 +0200 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Maiquel wrote: >Boa Tarde Lista, > >estou com uma pequena dúvida. Quando apago um arquivo no linux(modo texto), >este vai para onde? Lugar nenhum. Quando você apaga um arquivo, o arquivo é apagado. Isto é, ele deixa de existir. >Existe alguma diretório para onde esses arquivos vão? Não. No Linux, quando você vir "Apagar", significa apagar, não mover para outro lugar. Existe algo semelhante ao que você quer nos ambientes integrados, algo como "Mover para Lixeira". - --   Thiago Macieira  -  Registered Linux user #65028    thiagom@mail.com               ICQ UIN: 1967141   ************************************************************************** De:  Ricardo Para:  dorsolini Cc:  lista-linux Assunto:  Re: (linux-br)ajuda com shell scripting Data:  Tue, 20 Jan 2004 17:50:23 -0200 (BRST) Use o find (man find). Exemplos:   find . -size +10000k -exec rm -fv {} \;   find /home1/abc /var/log -size +10000k -exec rm -fv {} \; Ricardo On Mon, 19 Jan 2004, dorsolini wrote: > ALguem tem um script ou algo parecido e poderia me enviar que fizesse a seguinte > rotina: > > verificasse o tamanho de certo arquivo e se o mesmo fosse maior q tanto ele o > apagasse. > ************************************************************************** De:  Daniel Banak Para:  lista-linux Assunto:  Re: (linux-br)ajuda com shell scripting Data:  Wed, 21 Jan 2004 12:52:32 -0300 > ALguem tem um script ou algo parecido e poderia me enviar que fizesse a seguinte > rotina: > > verificasse o tamanho de certo arquivo e se o mesmo fosse maior q tanto ele o > apagasse. Você pode utilizar o seguinte: for arquivo in `find /root/ -type f -size +40000k`;do echo > $arquivo; done este comando procura por arquivos maiores que o valor definido em -size ( no exemplo 40Mb ) e não o apaga, apenas zera o seu conteúdo. se vc quizer apagar o arquivo, basta trocar o "echo > $arquivo" por um "rm -f $arquivo". Só tome cuidado para não zerar ou apagar algum arquivo do sistema. Se o arquivo que vc quer apagar possuir um nome fixo, utilize um " -name nome_do_arquivo " no find e verifique o diretório onde procurará o arquivo ( no exemplo utilizei o /root ) ************************************************************************** De:  Helder Jean Para:  dorsolini Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)ajuda com shell scripting Data:  Wed, 21 Jan 2004 10:28:34 +0300 dorsolini wrote: ALguem tem um script ou algo parecido e poderia me enviar que fizesse a seguinte  > rotina: > > verificasse o tamanho de certo arquivo e se o mesmo fosse maior q tanto ele o > apagasse. > > grato > find ./ -type f -size +1024k -exec rm -f {} \;   Esse aí apaga qualquer arquivo com mais de 1024kb no diretório atual e seus subdiretórios. Daí é só adaptar pra sua necessidade. []'s -- Helder Jean  Engenharia de Computação - UFRN - http://www.ufrn.br Gerência de Redes - Superintendência de Informática - UFRN Linux Registered User #229979 GnuPG KeyID: 0x46EE1E86 ************************************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Cc:  Token Assunto:  Re: (linux-br)Como deletar um arquivo? Data:  Tue, 18 May 2004 12:47:22 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Token wrote: >Quando vou tentar deletar esse arquivo chamado --help, >ele mostra o help do rm. >E agora como deletar um arquivo PELO LINUX com esse >nome citado? Possibilidades: 1) use um gerenciador de arquivos 2) use o caminho completo para o arquivo ou, pelo menos, comece com ./         rm ./--help 3) use a opção de "fim de opções"         rm -- --help O -- indica que não há mais opções a seguir, o que significa que você pode começar sua lista de arquivos com - que não serão interpretados como opções. Aliás, a razão de opções longas começarem com -- é essa: não pode haver uma opção -. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info     ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint: ************************************************************************** De:  Clovis Sena Para:  Guerreiro - Linux Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Scripts de Exclusoes Data:  Fri, 13 Aug 2004 15:42:36 -0300 sera que funciona assim: #!/bin/bash # find    . -name   .recycle  >>limpa for i in cat limpa ; do rm -rf $i ; done # fim do script # # ?? Guerreiro - Linux escreveu: preciso de um script que procure e depois delete o que encontrou......seria > isto > hoje para exlcuir eu faco o seguinte dou este comando. > find    . -name   .recycle  >>limpa > > depois edito o arquivo limpa colocando rm -rf, dou chmod 777 e executo, eu > queria ja fazer na procura, alguem tem algum script que faça isto? >   > ************************************************************************** Date: Fri, 13 Aug 2004 15:44:45 -0300 From: Thiago Macieira Subject: Re: (linux-br)Scripts de Exclusoes To: linux-br@bazar2.conectiva.com.br Message-ID: <200408131544.46196.thiago@macieira.info> Content-Type: text/plain; charset="iso-8859-1" Guerreiro - Linux wrote: >preciso de um script que procure e depois delete o que > encontrou......seria isto >hoje para exlcuir eu faco o seguinte dou este comando. >find    . -name   .recycle  >>limpa find . -name .recycle | xargs rm -rf CUIDADO! --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info     ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint: ************************************************************************** De:  Claudio Polegato Junior Para:  Aguiar Magalhaes Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Apagar arquivo nomeado - teste- Data:  Fri, 15 Oct 2004 11:59:18 -0300 (EST) rm -- -\ teste []'s Claudio > Alguem sabe como faço para excluir um arquivo nomeado > - teste- ************************************************************************** De:  Antonio da Silva Martins Junior Para:  KMS Comunicação e Marketing Cc:  linux-br Assunto:  Re: (linux-br)apagando o mesmo arquivo de varios diretorios Data:  Tue, 2 Nov 2004 19:23:04 -0200 (BRDT) On Tue, 2 Nov 2004, KMS Comunicação e Marketing wrote: > Gostaria de saber qual é a maneira mais facil de apagar um mesmo > arquivo de diversos diretórios, isso é possível? > ...quando digo mesmo arquivo é que eles tem os nomes > parecidos e da pra defini-los numa boa com curingas é algo do tipo > cóp*.ext > > Quando fazia isso no windows eu efetuava uma pesquisa em todos os > diretórios e depois pedia pra excluir essa pesquisa... Olá Cássio,   Ótima idéia :) Que tal fazer como no windows? Assim:   #find -name -exec rm -f {} \;   p.ex. digamos que os seus arquivos estão em /home/sistema e usando o teu curinga teremos:   #find /home/sistema -name 'cóp*.ext' -exec rm -f {} \;   Acho que isso soluciona o seu problema, de uma olhada no man do "find" que tem muito mais opções. :)       Antonio. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Antonio S. Martins Jr. - Support Analist | "Only The Shadow Knows     | | Universidade Estadual de Maringa - Brasil|   what evil lurks in the   | | NPD - Núcleo de Processamento de Dados   |       Heart of Men!"       | | E-Mail: asmartins@uem.br / shadow@uem.br | !!! Linux User: 52392 !!!  | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ************************************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Cc:  KMS Comunicação e Marketing Assunto:  Re: (linux-br)apagando o mesmo arquivo de varios diretorios Data:  Tue, 2 Nov 2004 19:26:22 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 KMS Comunicação e Marketing wrote: >Olá pessoal, tudo certo? > >Gostaria de saber qual é a maneira mais facil de apagar um mesmo >arquivo de diversos diretórios, isso é possível? sim: find -type f -name "nome-do-arquivo" | xargs rm Obviamente, muito cuidado com o comando acima. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info ************************************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br, Wellington Terumi Uemura Assunto:  Re: (linux-br)Como deletar uma arquivo "estagiado"? Data:  Fri, 17 Dec 2004 17:13:11 -0200 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Wellington Terumi Uemura wrote: >Um estagiário aqui na empresa recebeu a função de fazer backup dos >servidores de firewall, no arquivo 'excluir' tinha a lista para o tar >não copiar e segundo ele: >- Eu sei fazer o backup com as duas mãos nas costas!!! > >Só que o infeliz colocou a opção  '--exclude-from=excluir' no lugar >errado e foi criado um arquivo '--exclude-from=excluir' que não apaga >de jeito nenhum, alguém tem uma solução para este problema? Você quer dizer isso: $ ls -l total 0 - -rw-rw-r--  1 thiago thiago 0 2004-12-17 17:09 --exclude-from=excluir E aí: $ rm --exclude-from\=excluir rm: opção não reconhecida `--exclude-from=excluir' Try `rm --help' for more information. É isso? Soluções: $ rm $PWD/--exclude-from\=excluir $ rm ./--exclude-from\=excluir $ rm -- --exclude-from\=excluir Ou use um gerenciador de arquivos. Dica: opções SEMPRE precedem os nomes de arquivos: $ touch abc $ ls abc $ ls -l abc - -rw-rw-r--  1 thiago thiago 0 2004-12-17 17:11 abc $ ls abc -l - -rw-rw-r--  1 thiago thiago 0 2004-12-17 17:11 abc $ export POSIXLY_CORRECT=1 $ ls -l abc - -rw-rw-r--  1 thiago thiago 0 2004-12-17 17:11 abc $ ls abc -l ls: -l: Arquivo ou diretório não encontrado abc - --   Thiago Macieira  -  thiago (AT) macieira (DOT) info ************************************************************************** De:  hamacker Para:  Wellington Terumi Uemura , Linux-br Assunto:  Re: (linux-br)Como deletar uma arquivo "estagiado"? Data:  Fri, 17 Dec 2004 15:04:59 -0200 criar : echo >--exclude-from=excluir remover : rm -- --exclude-from\=excluir O "--" fará com que os "--opcoes" sejam ignorados. inte+ Wellington Terumi Uemura escreveu: Só que o infeliz colocou a opção  '--exclude-from=excluir' no lugar > errado e foi criado um arquivo '--exclude-from=excluir' que não apaga > de jeito nenhum, alguém tem uma solução para este problema? ************************************************************************** **************************************************************************