在bash中增加目录名称

时间:2014-05-30 18:53:07

标签: linux bash date

我有一个bash脚本,我希望在每次启动时使用日期创建一个带日期和增量编号的目录

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

我想将输出设置为300514-1然后重启300514-2后依此类推,但文件需要存储到创建的目录中,即

SAVEDIR=/home/files/$DATE-*

2 个答案:

答案 0 :(得分:4)

您可以使用以下脚本:

#!/bin/bash

DATE=$(date +"%d%m%Y")
N=1

# Increment $N as long as a directory with that name exists
while [[ -d "/home/files/$DATE-$N" ]] ; do
    N=$(($N+1))
done

mkdir "/home/files/$DATE-$N"

请注意,脚本对竞争条件不安全,这意味着您不能在许多并发进程同时调用脚本的环境中使用它。

答案 1 :(得分:0)

看看mktemp。它不会完全符合您的要求,但它将保证您的目录名称是唯一的,并且您不会遇到任何种类的竞争条件。