我希望配置此备份脚本以采用当前日期并以 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 ;
答案1
您必须使用 DDMMYYYY 吗?使用 YYYYMMDD 更简单,因为默认排序顺序ls
会正确地将最新的排序到顶部。
您还可以扩展日期概念以使用时间,例如
today=$( date +%Y%m%d%H)
得到 YYYYMMDDHH 并且如果需要的话你甚至可以添加 %M 和 %S。
答案2
如果您确实想坚持使用所选择的格式,可以执行以下操作:
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;