Bash 复制名称中带有特定字符串的任何目录(和子目录)

Bash 复制名称中带有特定字符串的任何目录(和子目录),bash,directory,copy,Bash,Directory,Copy,我现在有几十个文件夹。它们的名称可能会更改,文件夹的数量也可能会更改。我想将名称中包含特定字符串的任何文件夹复制到另一个目录。例如,我可能有以下文件夹: Blue-3.30 Red-Green-5.50 Blue-Red-3.30 BLUE-RED-4.40 AB-Blue-3.30 GreenBlue-44.00 在本例中,无论大小写或复合词是否包含蓝色(如文件夹GreenBlue-44.00),如何复制名称中带有蓝色的文件夹?您可以使用查找命令 find命令具有以下选项,这些选项对您的问题

我现在有几十个文件夹。它们的名称可能会更改,文件夹的数量也可能会更改。我想将名称中包含特定字符串的任何文件夹复制到另一个目录。例如,我可能有以下文件夹:

Blue-3.30
Red-Green-5.50
Blue-Red-3.30
BLUE-RED-4.40
AB-Blue-3.30
GreenBlue-44.00

在本例中,无论大小写或复合词是否包含蓝色(如文件夹GreenBlue-44.00),如何复制名称中带有蓝色的文件夹?

您可以使用
查找
命令

find
命令具有以下选项,这些选项对您的问题非常有用:

  • -regex
    (在您的情况下,它可以是
    *蓝色。*
  • -类型d
    (仅目录)
  • -maxdept
    (您可以定义要求查找的级别)
此外,您可以使用
-exec
或管道到
xargs
执行复制操作


有关这些选项的更多详细信息,请参见手册页。

您可以使用
find
命令

find
命令具有以下选项,这些选项对您的问题非常有用:

  • -regex
    (在您的情况下,它可以是
    *蓝色。*
  • -类型d
    (仅目录)
  • -maxdept
    (您可以定义要求查找的级别)
此外,您可以使用
-exec
或管道到
xargs
执行复制操作

有关这些选项的更多详细信息,请参见手册页。

使用如下命令:

find . -type d -iname '*blue*' -exec cp -r {} /destination/dir/path \;
-键入d
:查找目录。
-iname'*blue*'
:查找与
blue
匹配的名称,不区分大小写。
-exec cp-r{}/destination/dir/path\;
:将每个项目复制到所需的目标目录。

使用如下命令:

find . -type d -iname '*blue*' -exec cp -r {} /destination/dir/path \;
-键入d
:查找目录。
-iname'*blue*'
:查找与
blue
匹配的名称,不区分大小写。

-exec cp-r{}/destination/dir/path\
:将每个项目复制到所需的目标目录。

这些文件夹中是否也有需要移动的文件?是否区分大小写?(
find
-regex
也可以处理。)这些文件夹中是否也有需要移动的文件?是否区分大小写?(
find
-regex
也可以处理。)谢谢!这对我的用例很有效,正是我所寻找的。谢谢!这对我的用例很有效,也正是我所寻找的。