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
로그 파일은 "valid.app5s.log.1019, app5s.gf3sts.1019, valid.app5s.gf3log.1019, app5s.gf3log.1019, app5s.gf1sts.1019, valid.app5s.gf1log와 같은 다양한 형식으로 제공됩니다. 1019,app5s.sts.1019".
하지만 나는 이것을 할 수 없습니다. 문제 해결을 도와주세요..
답변1
내가 놓친 것이 없다면 다음을 사용할 수 있습니다 find
.
find . -maxdepth 1 -mtime +1 -type f -exec mv {} arc/ \;
그러면 현재 디렉터리에서 1일보다 오래된 파일을 찾아 "arc" 디렉터리로 이동합니다.
답변2
find 명령에 maxlength 사용
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