linux找到正则表达式

And*_*eas 1 linux bash find

我有一个脚本,我想在文件夹中找到纯数字的所有直接子目录,并将它们复制到指定的目标.我有问题获得正则表达式一起工作+,并*find.示例中的文件夹结构如下:

0/
1/
2/
3/
3.02asd/
3a/
4/
44/
45/
451/
452/
453/
4531/
4532/
45321/
45322/
45323/
666aa/
66a/
66aaa/
temp27/
Run Code Online (Sandbox Code Playgroud)

我已经使用以下命令:

find . -type d -maxdepth 1 -name "[0-9]" | while read f
do
    mv $f $TESTPATH
done

find . -type d -maxdepth 1 -name "[0-9][0-9]" | while read f
do
    mv $f $TESTPATH
done

find . -type d -maxdepth 1 -name "[0-9][0-9][0-9]" | while read f
do
    mv $f $TESTPATH
done

find . -type d -maxdepth 1 -name "[0-9][0-9][0-9][0-9]" | while read f
do
    mv $f $TESTPATH
done

find . -type d -maxdepth 1 -name "[0-9][0-9][0-9][0-9][0-9]" | while read f
do
    mv $f $TESTPATH
done
Run Code Online (Sandbox Code Playgroud)

不是很好,但它的工作原理,但这应该是可能的,例如:

find . -type d -maxdepth 1 -name "[0-9]+"
Run Code Online (Sandbox Code Playgroud)

要么

find . -type d -maxdepth 1 -name "[0-9][0-9]*"
Run Code Online (Sandbox Code Playgroud)

但它似乎+不起作用*,似乎是通配符.

Pau*_*l R 8

使用-regex而不是-name,例如

find . -maxdepth 1 -type d -regex ".*/[0-9]*"
Run Code Online (Sandbox Code Playgroud)