使用当前date作为文件夹名称存档,并添加1,2等,如果文件夹存在

我正在寻找configuration此备份脚本采取当天的date,并使目录在mmddyyyy格式,因为这将是自动的。 但是,如果当天的目录已经存在(如果我需要在某一天做多个备份),我想添加-1或-2,这样就会出现07072011-3(如果它是当天做第四次备份)。

有没有简单的方法来添加到目录名称的末尾,每次写入+1时?

设置date/文件夹名称

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

mkdir /home/user/backup/$today

检查目录是否存在

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

then

echo Directory already exists ;

你必须使用DDMMYYYY吗? 使用YYYYMMDD更容易,因为ls的默认sorting顺序将正确地将最新sorting到顶部。

你也可以延长date的想法来使用时间,例如

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

得到YYYYMMDDHH,如果需要的话,甚至可以添加%M和%S。

如果你真的想坚持你select的格式,你可以做如下的事情:

 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;