我有一个名称为20190606_151020的目录。我想在files_2019-06-06_15-10-20中重命名它。将来我将不知道当前目录名称,但是它将是该目录中的唯一目录,并且我也知道我需要创建一个前缀files_,并且在2019年之后应为-。

如何在BASH脚本中执行此操作?

我在bash中处理字符串非常不好:(

分析解答

你的意思是这样的吗?

#!/bin/bash

# find the special directory
name="$(find . -type d -printf %P)"

# split name into parts
year="${name:0:4}"
month="${name:4:2}"
day="${name:6:2}"
hour="${name:9:2}"
min="${name:11:2}"
sec="${name:13:2}"

# rename directory
mv "$name" "files_${year}-${month}-${day}_${hour}-${min}-${sec}"

用法

进入存在特殊目录的目录并开始 剧本。