cd /home/usr/bin/logs
find . -mtime +1 -print | sed -n -e '/\.\/arc/d' -e 's/.*\//' -e '/*.[0-9]$/p' | while read i
do
if [-f arc/$i]
then
cat $i >> arc/$i
rm $i
else
mv $i arc
fi
done
Los archivos de registro están en varios formatos, como "valid.app5s.log.1019, app5s.gf3sts.1019, valid.app5s.gf3log.1019, app5s.gf3log.1019, app5s.gf1sts.1019,valid.app5s.gf1log .1019, aplicación5s.sts.1019".
Pero no pude hacerlo con esto. Por favor, ayúdame a solucionar el problema.
Respuesta1
A menos que me falte algo, puedes usar find
:
find . -maxdepth 1 -mtime +1 -type f -exec mv {} arc/ \;
Eso encontrará cualquier archivo con más de 1 día de antigüedad en el directorio actual y lo moverá al directorio "arc".
Respuesta2
use max Depth en el comando de búsqueda
cd /home/usr/bin/logs
find . -maxdepth 1 -mtime +1 -print | while read i
do
if [ -f arc/$i ]
then
cat $i >> arc/$i
rm $i
else
mv $i arc
fi
done