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コマンドでmaxdepthを使用する
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