在BASH中命令FIND如何更改它



在我的备份脚本中,我有以下命令:

find $HOME/folha1/it/backups/ -type f -mmin +15 -exec rm -rf {} ;

他工作,但我想改变这一点。我想实现下一个场景:

当我在该目录中有5个或更多的文件时,我想删除旧的。

我不知道如何改变这一点,有了这个命令,我使用了man find,但我不太理解。

有人知道如何用find命令删除旧备份吗?

!/bin/bash
DIR="/home/teste/folha1/it/backups"
if [ -d "$DIR" ]; then
echo "Diretory Exist"
else
bash -c "mkdir -p /home/teste/folha1/it/backups/"
echo "Created Diretory"
exit 1
fi
zip -rv $HOME/folha1/it/backups/scripts$(date +%Y-%m-%d_%H:%M:%S_%N).bck.zip $HOME/folha1/it/scripts

然后我想把下一个命令找

find $HOME/folha1/it/backups/ -type f -mmin +15 -exec rm -rf {} ;

这将起作用:

TARGET_DIR=$HOME/folha1/it/backups
#Lets count how many there are
COUNT=`find $TARGET_DIR -type f -mmin +15 | wc -l`
#If there are more than 5, let's delete oldest files except newest 5
if [ "$COUNT" -gt "5" ]; then
cd $TARGET_DIR; rm `ls -t $TARGET_DIR  | awk 'NR>5'`
fi

最新更新