如何添加名称为dir-000,dir-001等名称的目录

时间:2013-07-15 04:40:26

标签: bash

我想在不同时间将目录复制到另一个目录中。每次,我希望新名称比以前更高一个数字/我希望能够获取该数字并将其存储到变量中。

所以如果我有:

mymaindir

/home/user/dirs/STRING_000
/home/user/dirs/STRING_001

我运行我的脚本,mymaindir将被复制到/home/user/dirs/STRING_002,我可以从中获取值2。我刚看过split等不同的东西,但它似乎并不是我想要的东西。

2 个答案:

答案 0 :(得分:2)

一个班轮可以做到这一点:

arr=( $(find . -name "STRING_*" | awk -F "_" '{if ($2>max) max=$2} 
        END{max++; printf("%d STRING_%03d\n", max, max)}') )

maxVal=${arr[0]}
fileName=${arr[1]}

答案 1 :(得分:1)

您可以使用以下某种形式:

highest=$(find -name 'string_[0-9]*' | cut -d_ -f2 | sort -nr | head -1)
newname="string_$(printf "%03d" "$(( $highest+ 1))")"