我需要一个脚本来查找并获取所有子目录中的所有文件(并将它们保留在现在的文件夹结构中)。我知道如何查找和打印这些文件:
find . -name "something.extension"
关键是,在那些目录中是以前使用过的批量文件,但我不想得到那些,所以脚本应该只找到与某种路径模式匹配的文件:
xxx/trunk/xxx/src/main/resources
xxx每次都不同,并且在资源之后仍然存在一些基于xxx的目录不同的文件夹。
每个顶级xxx文件夹都包含名为'tags'的文件夹(与trunk相同的级别),用于存储以前版本的模块(并且每个版本都有我正在寻找的文件名,但我不想要过时的文件)。 / p>
所以我想找到我指定的那个路径模式的子目录中的所有文件并复制到新位置但是保留文件夹结构,就像现在一样。
我正在使用Windows和cygwin。
更新
我结合了下面发布的“其他人”的答案命令,并且它有效。要明确我有这样的事情:
find */trunk/*/src/main/resources -name "something.extension" -exec mkdir -p /absolute/target/path/{} \; -exec cp {} /absolute/target/path/{} \;
感谢。
答案 0 :(得分:1)
不要在整个当前目录(.
)下搜索,只需在您关注的目录下搜索:
find */trunk/*/src/main/resources -name "something.extension"