我有这个目录结构:
.../current folder/Bx/Px/
其中x
是不同的数字,如x
= 1
,2
,3
... 等等。
我想P*
在当前文件夹中找到目录,然后将它们全部复制到文件夹中asd
,该文件夹也位于当前文件夹中。对于文件,我通常会这样做:
find . -name P* | cpio -pdm asd
但我不知道如何使用目录来实现这一点。我尝试了以下方法:
find . -name P* | cpio -D -pdm asd
在不同的配置中,但它不起作用。
答案1
类似于但不完全类似于什么@Jos 说你可以使用这个find
命令:
find . -type d -name "P*" -exec cp -r {} ./asd \;
-type d
:仅查找目录。-name "P*"
:搜索所有名称以 开头的项目P
(区分大小写)。-exec
:执行指定命令。cp -r {} ./asd
:复制(cp
)符合条件的找到的目录{}
及其内容-r
到asd
当前目录下的目录中./
。\;
:cp
对找到的每个项目应用操作(\
用于转义;
)。
请记住,find
默认情况下会递归查找符合指定条件的项目,因此它也会在子目录中找到符合指定条件的目录。如果您只对匹配当前目录中的目录感兴趣,请-maxdepth 1
在 之前添加选项-type d
。另请参阅man find
。
笔记:在将上述命令应用于实际数据之前,请务必先对其进行测试,以确保其按预期工作。此外,保留数据备份始终是一个好主意。