Script para Remover Arquivos - Arg list too long

1. Script para Remover Arquivos - Arg list too long

Marcos Antonio Jorgete
ratozzy

(usa Outra)

Enviado em 11/10/2016 - 12:13h

Olá pessoal,

Montei um Script para remover arquivos com mais de 90 dias, porem me dá um retorno 'Arg list too long', no diretório tem mais de 2 milhões de arquivos.

Se alguém tiver uma alternativa .


#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
for ARQV in `find $DIR_EXPURGO/*.log -mtime +90`
do
rm $ARQV
done


Já tentei também:

 
#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
find $DIR_EXPURGO/*.txt -mtime +90 | xargs rm -rf


e


#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
find $DIR_EXPURGO/*.txt -mtime +90 -exec rm {} \;


Todos com o mesmo retorno:
/usr/bin/find: Arg list too long



  


2. Re: Script para Remover Arquivos - Arg list too long

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 11/10/2016 - 14:18h

Como são muitos arquivos, você deve usar a dupla "find + xargs".

find /dir/logs -type f -iname "*.txt" -mtime +90 | xargs -n 1000 rm -f 





3. Re: Script para Remover Arquivos - Arg list too long

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/10/2016 - 14:25h

ratozzy escreveu:

Olá pessoal,

Montei um Script para remover arquivos com mais de 90 dias, porem me dá um retorno 'Arg list too long', no diretório tem mais de 2 milhões de arquivos.

Se alguém tiver uma alternativa .


#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
for ARQV in `find $DIR_EXPURGO/*.log -mtime +90`
do
rm $ARQV
done


Já tentei também:

 
#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
find $DIR_EXPURGO/*.txt -mtime +90 | xargs rm -rf


e


#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
find $DIR_EXPURGO/*.txt -mtime +90 -exec rm {} \;


Todos com o mesmo retorno:
/usr/bin/find: Arg list too long

-----------------------------------------------------
O ERRO é em $DIR_EXPURGO/*.txt
Teste da seguinte forma:
while read DIR;do
find "$DIR" -maxdepth 1 -iname "*.txt" -mtime +90 -exec rm {} \;
done < lista_diretorio.lst

marcelo oliver



4. Re: Script para Remover Arquivos - Arg list too long

Marcos Antonio Jorgete
ratozzy

(usa Outra)

Enviado em 11/10/2016 - 15:25h

SMarcell escreveu:

Como são muitos arquivos, você deve usar a dupla "find + xargs".

find /dir/logs -type f -iname "*.txt" -mtime +90 | xargs -n 1000 rm -f 




Também não foi;
find: bad option -iname



5. Re: Script para Remover Arquivos - Arg list too long

Marcos Antonio Jorgete
ratozzy

(usa Outra)

Enviado em 11/10/2016 - 15:25h

msoliver escreveu:

ratozzy escreveu:

Olá pessoal,

Montei um Script para remover arquivos com mais de 90 dias, porem me dá um retorno 'Arg list too long', no diretório tem mais de 2 milhões de arquivos.

Se alguém tiver uma alternativa .


#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
for ARQV in `find $DIR_EXPURGO/*.log -mtime +90`
do
rm $ARQV
done


Já tentei também:

 
#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
find $DIR_EXPURGO/*.txt -mtime +90 | xargs rm -rf


e


#!/bin/bash
DIR_EXPURGO=/dir/arqv/logs
find $DIR_EXPURGO/*.txt -mtime +90 -exec rm {} \;


Todos com o mesmo retorno:
/usr/bin/find: Arg list too long

-----------------------------------------------------
O ERRO é em $DIR_EXPURGO/*.txt
Teste da seguinte forma:
while read DIR;do
find "$DIR" -maxdepth 1 -iname "*.txt" -mtime +90 -exec rm {} \;
done < lista_diretorio.lst

marcelo oliver


O maxdepth não funciona no AIX.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts