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