Dúvida - Apagar o conteúdo de diretórios menos ele mesmo [RESOLVIDO]

1. Dúvida - Apagar o conteúdo de diretórios menos ele mesmo [RESOLVIDO]

lord beni-aretz
lord beni-aretz

(usa Red Hat)

Enviado em 24/01/2013 - 16:58h

Ola pessoal,

Tenho a seguinte situação:
Um diretório em rede com várias outros diretórios dentro ex.
/home/temp
/home/temp/uva
/home/temp/laranja
/home/temp/maçã
/home/temp/pera

Tem como eu programas um script para ele apagar tudo que estiver dentro das pastas "/home/temp/???/*"
sem excluir eles mesmas, apenas o que tiver sido gravado dentro delas?

Valeu.



  


2. MELHOR RESPOSTA

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 24/01/2013 - 17:03h


find /home/temp -type f -exec rm -f '{}' \+


3. Re: Dúvida - Apagar o conteúdo de diretórios menos ele mesmo [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 24/01/2013 - 17:08h

find /home/temp -mindepth 1 -print0 | xargs -0 rm -Rf 



4. Re: Dúvida - Apagar o conteúdo de diretórios menos ele mesmo [RESOLVIDO]

lord beni-aretz
lord beni-aretz

(usa Red Hat)

Enviado em 24/01/2013 - 18:06h

renato_pacheco escreveu:


find /home/temp -type f -exec rm -f '{}' \+


Valeu, era isso mesmo que eu queria.
Obrigadão.

A segunda opção excluiu minhas pastas, mesmo assim obrigado.



5. Re: Dúvida - Apagar o conteúdo de diretórios menos ele mesmo [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/02/2013 - 06:57h

Peço desculpas pelo dano colateral causado pela minha distração -- eu grotescamente entendera que você queria apagar depois do primeiro nível, não somente após o segundo.

Mas ainda advogo em favor de uma solução parecida com a minha proposta original, pois ela cuida de apagar também subdiretórios em níveis mais internos. Se você tivesse um arquivo localizado em /home/temp/dir1/dir2/dir3/dir4/arquivo.txt, a outra solução apresentada apagaria apenas o arquivo, deixando a tripa de subdiretórios ainda no disco, mesmo sem arquivo algum dentro deles. Além disso, da forma como foi feito, essa outra solução executa uma instância diferente do comando rm para cada arquivo a ser removido, o que é um tremendo desperdício se a quantidade de arquivos for grande.

Assim sendo, eu proporia, após os devidos testes feitos por você (por exemplo, colocando echo antes do rm, para ver na tela qual comando teria sido executado), a seguinte simples variação do que eu havia dito anteriormente.

find /home/temp -mindepth 2 -maxdepth 2 -print0 | xargs -0 rm -Rf 



6. ctime + maxdepth

william
williamont

(usa Ubuntu)

Enviado em 13/11/2014 - 05:58h

Estou tentando o código acima e está tudo certo, porém preciso acrescentar um ctime na condição e não consigo, alguém sabe me dizer como fazer?



find /home/william/teste/teste -mindepth 1 -maxdepth 1







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts