0

我的脚本:

#!/bin/bash
NOW=$(date +"%Y%m%d%t%H%M%S")
# Pour chaque dossiers "log" trouvé.
for folder in $(find . -name "*log*" -type d )
    do :
        # Pour chaque dossier log contenant des fichiers ".log" vieux de +30jours.
            tar czf archive-log.$NOW.tar.gz $(find $folder -name "*.log" -mtime +30)
            # On supprime les anciens fichiers de log
            rm $(find $folder -name "*.log" -mtime +30)
    done

我的问题是:如果我有要存档的文件,我要进行什么测试?谢谢

4

1 回答 1

1

如果您想跳过没有要存档的文件的情况,这可以帮助您:

if [ ! -z $(find $folder -name "*.log" -mtime +30) ]
then
   tar czf archive-log.$NOW.tar.gz $(find $folder -name "*.log" -mtime +30)
   rm $(find $folder -name "*.log" -mtime +30)
else
   echo "there are no files to archive"
fi

语法if [ -z "string" ]检查字符串是否为空。否定它,if [ ! -z $(find...) ]我们检查结果是否返回结果。

于 2013-09-17T15:41:50.390 回答