linux - 在 bash 中递增目录名称

标签 linux bash date

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

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

我希望输出为 300514-1,然后在重启后为 300514-2 等等,但文件需要存储到创建的目录中,即

SAVEDIR=/home/files/$DATE-*

最佳答案

您可以使用以下脚本:

#!/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}"

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

关于linux - 在 bash 中递增目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23961562/

相关文章:

linux原始套接字编程问题

linux - 如何更改多个文件的第一行(包括文件名)?

linux - 无法在 Amazon Centos 上编译 QT 5.5.1 : Project ERROR: Unknown module(s) in QT: quick

bash - 在公共(public)列上合并两个文件并使用 awk 打印所有列

sql - 获取开始日期和结束日期 - 从给定年份 yyyy 开始

c - 用于 linux c 的图形用户界面

linux - 如何在 freebsd 的不同 session 中执行子进程

ruby - 如何在 ruby​​ cli 中使用 bash clear

.net - VB日期转换

php - 在 php 中添加日期会给出不同的结果