Bash:将兄弟目录中具有相同名称的文件移动到新的目录结构中

时间:2017-05-04 22:15:27

标签: android bash

我想在循环中反复运行此命令(而不是手动执行73次):

mv values-bg/x_strings.xml ~/workspace/myapp/app/res/values-bg/

每次迭代唯一会改变的是values-之后的后缀。它将是afarazbebg ....它有时也会像values-es-rES。< / p>

这些目录包含我不想移动的其他文件,所以我不能只复制整个目录结构。我想从每个目录中获取这个文件。

背景信息:我有一个翻译服务,可以将x_strings.xml文件从英语翻译成几十种语言。既然已经翻译了这些字符串,我需要将它们移动到正确的目录中。我想自动化这个。谢谢!

更新

我最终做到了这一点,基本上有效:

for d in `find . -type d`; do mv "${d#./}"/x_strings.xml ~/workspace/myapp/app/res/"${d#./}"/; done

1 个答案:

答案 0 :(得分:0)

for d in `find . -type d`; do mv "${d#./}"/x_strings.xml ~/workspace/myapp/app/res/"${d#./}"/; done

这可以直接从命令行运行。 find命令查找当前目录中的所有目录,并允许我在for中迭代它们。 "${d#./}"./提供的目录中删除了前导find

这里有一点需要注意的是,这不会将文件移动到不存在的目录中,但这正是我想要的行为。