Criando o arquivo com a data atual como nome da pasta, e adiciona 1, 2, etc, se a pasta existir

1

Eu estou olhando para configurar este script de backup para tirar a data do dia atual e fazer o diretório em um formato mmddyyyy, pois isso será automatizado. No entanto, se o diretório com esse dia atual já existir (se eu precisasse fazer mais de um backup em um determinado dia), eu quero adicionar -1 ou -2, para que ele apareça 07072011-3 (se fosse o 4º backup sendo feito naquele dia).

existe uma maneira simples de adicionar no final do nome do diretório, +1 para cada vez que ele foi escrito?

Definir data / nome da pasta

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

mkdir /home/user/backup/$today

Verifique se existe dir

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

then

echo Directory already exists ;

    
por koo 07.07.2011 / 19:40

2 respostas

1

Você tem que usar DDMMAAAA? O uso de YYYYMMDD é mais fácil, pois a ordem de classificação padrão de ls classificará corretamente o mais recente no topo.

Você também pode estender a ideia de data para usar o horário, por exemplo,

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

para obter YYYYMMDDHH e você pode até adicionar% M e% S se precisar.

    
por 07.07.2011 / 19:58
1

Se você realmente quiser manter o formato selecionado, poderá fazer algo como o seguinte:

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;
    
por 07.07.2011 / 20:27