Linux 如何以特定方式重命名目录。猛击
我有一个名为20190606_151020的目录。我想在文件中重命名它\u 2019-06-06\u 15-10-20。将来我不知道当前的目录名,但它将是那里唯一的目录,我还知道我需要做一个前缀文件,2019年以后应该是- 我如何在BASH脚本中实现它Linux 如何以特定方式重命名目录。猛击,linux,bash,directory,Linux,Bash,Directory,我有一个名为20190606_151020的目录。我想在文件中重命名它\u 2019-06-06\u 15-10-20。将来我不知道当前的目录名,但它将是那里唯一的目录,我还知道我需要做一个前缀文件,2019年以后应该是- 我如何在BASH脚本中实现它 我在bash中处理字符串的能力非常差:(使用awk可以获得所需的输出 echo "20190606_151020" | awk 'BEGIN{FIELDWIDTHS="4 2 2 3 2 2"}{print "file_"$1"-"$2"-"$3
我在bash中处理字符串的能力非常差:(使用awk可以获得所需的输出
echo "20190606_151020" | awk 'BEGIN{FIELDWIDTHS="4 2 2 3 2 2"}{print "file_"$1"-"$2"-"$3$4"-"$5"-"$6}'
你的意思是这样的
#!/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}"
用法
进入您的特殊目录所在的目录并开始
剧本。这很好用!非常感谢。我接受了你的答案!