Назад | Перейти на главную страницу

Создание архива с текущей датой в качестве имени папки и добавление 1, 2 и т. Д., Если папка существует

Я хочу настроить этот сценарий резервного копирования, чтобы взять дату текущего дня и сделать каталог в формате mmddyyyy, так как это будет автоматизировано. Однако, если каталог с этим текущим днем ​​уже существует (если мне нужно было сделать более одной резервной копии в данный день), я хочу добавить -1 или -2, чтобы он отображался 07072011-3 (если бы это был В этот день делалась 4-я резервная копия).

есть ли простой способ добавить в конец имени каталога +1 за каждый раз, когда оно было написано?

Установить дату / имя папки

today="$ (date +%m%d%Y)"

mkdir /home/user/backup/$today

Проверьте, существует ли каталог

if [ ! -d /home/user/backup/$today ]

then

echo Directory already exists ;

Если вы действительно хотите придерживаться выбранного формата, вы можете сделать что-то вроде следующего:

today=$(date +%Y%m%d)
folder=$today
i=0
while [ -e /home/user/$folder ]
do
  echo "${folder} exists";
  i=$(( $i + 1 ))
  folder="${today}-${i}"
done
echo $folder;

Вам нужно использовать ДДММГГГГ? ГГГГММДД проще в качестве порядка сортировки по умолчанию для ls затем правильно отсортирует самые новые в начало.

Вы также можете расширить идею даты, чтобы использовать время, например.

today=$( date +%Y%m%d%H) 

чтобы получить ГГГГММДДЧЧ, и вы даже можете добавить% M и% S, если вам нужно.