Verificar pastas vazias, exclui-las. [RESOLVIDO]

1. Verificar pastas vazias, exclui-las. [RESOLVIDO]

Everton
gnewuch

(usa Ubuntu)

Enviado em 10/06/2011 - 09:11h

Galera, tenho um procedimento muito confuso para minha cabeça, seguinte:

preciso verificar dentro de um diretório de usuário, se há pastas dentro de cada (pasta)usuário, se houver pastas, verificar quais pastas estão vazias, deleta-las e recortar as pastas restantes para outro diretório.

Ao meu ver macabro demás... ainda testando aki...


  


2. Re: Verificar pastas vazias, exclui-las. [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 10/06/2011 - 09:55h

Algumas ideias:
Você pode usar o ls <diretorio>

quando damos o ls num diretório vario, ele não retorna nada, e quando damos o ls num diretório com conteúdo ele retorna o mesmo.

Você pode fazer primeiro
ls <diretorio>
verifica se tem retorno, se tiver, armazena cada saída num loop e nesse loop faça um [teste -d VARIAVEL] para ver se é um diretório, caso seja um diretório, verifica novamente se tem conteúdo, caso tenha, .... se não tiver conteúdo, delete :-), pode usar o comando rmdir (já que está vazio mesmo)

tente criar uma funcao recursiva, dando tudo certo quando terminar de rodar, basta usar a variável que armazenou o nome dos diretórios do primeiro loop para poder fazer o recorte para outro diretório.


Espero ter contribuído um pouco, para mim fazer um teste, teria que criar um estrutura de teste, deu preguiça :-)


3. Re: Verificar pastas vazias, exclui-las. [RESOLVIDO]

Takahashi
signout

(usa Slackware)

Enviado em 10/06/2011 - 10:22h

Boas,

Como disse o rai3mb, vc pode usar o ls ou utilizar o find com a opção -empty

# find /home -empty

/home/usuario/teste
/home/usuario/.mozilla/extensions
/home/usuario/.mozilla/plugins
/home/usuario/teste1/a

note que o retorno trara os diretorios vazio, no caso do teste1, ele possui um diretorio "a" que esta vazio.

Espero que ajude,
[]s


4. Re: Verificar pastas vazias, exclui-las. [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 10/06/2011 - 10:33h

@signout

Ok, bacana, ainda não sabia disso :-)

Vi que o mesmo retorna arquivos vazios também, então ainda sim, teria que fazer um teste para ver se o que retornou é um diretório, mas já ajuda bastante.

-empty "File is empty and is either a regular file or a directory."

ABraços


5. Re: Verificar pastas vazias, exclui-las. [RESOLVIDO]

Takahashi
signout

(usa Slackware)

Enviado em 10/06/2011 - 10:40h

Boas,

Sim, teria que acrescentar a opção -type d para trazer somente os diretorios.

find /home -empty -type d

Valew por ter lembrado!!!
[]s



6. Re: Verificar pastas vazias, exclui-las. [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 10/06/2011 - 10:59h

para excluir:

find /home/ -empty -type d -exec rmdir {} \; 2> /dev/null




7. Re: Verificar pastas vazias, exclui-las. [RESOLVIDO]

Everton
gnewuch

(usa Ubuntu)

Enviado em 23/12/2011 - 11:12h

Obrigado Galera show de bola ficou...


8. Re: Verificar pastas vazias, exclui-las. [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/02/2013 - 17:47h

eu usei aqui, dentro da pasta o seguinte comando

find -empty -delete

se quiser ainda dá pra acrescentar o "-type d" que mencionaram acima


9. EXCLUIR PASTAS VAZIAS

Luis Reis
LVKILL

(usa Sabayon)

Enviado em 23/11/2013 - 19:03h

Usei este último comando e funfou legal... muito bom


10. EXCLUIR PASTAS VAZIAS

Luis Reis
LVKILL

(usa Sabayon)

Enviado em 23/11/2013 - 19:05h

Usei este último comando em uma pastas da minha coleção de filmes .../Videoteca/Filmes$ "find -empty -delete" e funfou legal... muito bom.. o comando é o que esta entre haspas . claro.


11. Variáveis

Heber Queiroz
heberq

(usa Coyote)

Enviado em 06/09/2017 - 08:38h

Galera montei um servidor de backup e criei esse comando :

find /home/mercado/192.168.0.155_00121103ceba/ -mtime +15 -exec rm -rf {} \;
find /home/mercado/192.168.0.155_00121103ceba/ -empty -type d -exec rmdir {} \;

Esse servidor de backup para DVR, porém tenho outrs clientes e estou tendo que criar o mesmo arquivo para cada cliente.

Gostaria de saber de vocês se teria como eu criar esses comandos acima com variáveis e depois usar no cron ?

ex: deletar.sh?directory=/home/mercado/;time=+7;

Teria como eu fazer isso para mim poder defenir a pasta e os dias que será excluído os arquivos em questão ?

Obrigado






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts