команда НАЙТИ в BASH как ее поменять - PullRequest
1 голос
/ 09 апреля 2020

В моем сценарии резервного копирования у меня есть эта команда:

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 {} \;

1 Ответ

0 голосов
/ 12 апреля 2020

Это будет работать:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...