【发布时间】:2012-08-17 22:44:30
【问题描述】:
我有一个文件夹,其中包含许多带有子文件夹 (/...) 的文件夹,其结构如下:
_30_photos/combined
_30_photos/singles
_47_foo.bar
_47_foo.bar/combined
_47_foo.bar/singles
_50_foobar
使用命令find . -type d -print | grep '_[0-9]*_' 将显示结构为 ** 的所有文件夹。但是我生成了一个仅捕获 */combined 文件夹的正则表达式:
_[0-9]*_[a-z.]+/combined 但是当我将它插入到 find 命令中时,不会打印任何内容。
下一步是为每个组合文件夹(在我的硬盘上的某处)创建一个文件夹,并将组合文件夹的内容复制到新文件夹。新文件夹名称应与子文件夹的父名称相同,例如_47_foo.bar。搜索后可以通过 xargs 命令实现吗?
【问题讨论】:
-
如果您使用 find 将正则表达式插入 -regex 选项,请注意 find 匹配完整路径 -> 如果您从 .那么正则表达式必须匹配 ./whatever/come.here
-
这听起来有点像XY Problem。 mybecks,你真正想要达到什么目的?
-
是否可以告诉 find 它应该只在这个(或预定义的)目录中搜索,当然在所有子目录中
-
@mybecks ...但你所说的不是第一个参数找到的
-
我曾想过,但意识到所有具有该命名的文件夹都已找到(并已删除,我也使用该 find 命令进行删除)