Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何以特定方式重命名目录。猛击_Linux_Bash_Directory - Fatal编程技术网

Linux 如何以特定方式重命名目录。猛击

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

我有一个名为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$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}"
用法

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

这很好用!非常感谢。我接受了你的答案!