shell 需要在Linux中创建一个以timestamp - 1小时为名称的文件夹

whitzsjs  于 2023-06-24  发布在  Shell
关注(0)|答案(2)|浏览(143)

我正在尝试创建具有以下条件的文件夹:
1.需要创建一个以timestamp为名称的文件夹,例如:abc_20230613_17:30:00
1.如果您在本地计算机上创建目录的时间是18:30:00,那么我们应该创建的目录的名称将类似于abc_20230613_17:30:00“。
我可以使用以下命令创建一个包含当前时间戳的目录:

mkdir -p /path/to/local_dir/abc_$(date +%Y%m%d_%H%M%S)

但我需要创建一个文件夹为abc_(current_timstamp - 1 hour)

nukf8bse

nukf8bse1#

下面的解决方案是用bash编写的。

# Step 1: Get unix timestamp.
timestamp="$(date +%s)"

# Step 2: Subtract 1 hour from the timestamp.
timestamp="$((timestamp - 3600))"

# Step 3: Convert timestamp to your desired format.
date -d @"${timestamp}"

所有内容都在 * 一个 * 语句中:

mkdir -p "/path/to/local_dir/abc_$(date -d @$(($(date +%s) - 3600)) +%Y%m%d_%H%M%S)"
s8vozzvw

s8vozzvw2#

由于您标记了linux,我将假定GNU日期

date '+%T'                  # 12:33:58
date -d '1 hour ago' '+%T'  # 11:33:58

有关-d,请参见Date input formats

相关问题