我正在尝试通过ovftool自动将.vmx转换为.ova,并且这些.vmx文件是从ghettoVCB生成的。所以我正在编写一个脚本来实现转换自动化。
我的问题是如何编写一个shell脚本,该脚本遍历parent_directory中的每个目录并在每个目录中执行命令?或者可以将所有内容从最深的文件夹移动到parent_directory? (将这些文件从最深的文件夹移动到parent_directory可能需要很长时间才能使用此解决方案。)
目录结构如下: parent_directory /自动化/自动化2016-04-18_19-08-32 / automation.vmx parent_directory /公牛/公牛-2016-04-18_18-28-57 / bulls.vmx
这是另一种结构布局
parent_directory
parent_directory中子文件夹的名称不遵循模式。可以是任何名字。 文件夹“automation-2016-04-18_19-08-32”是子文件夹的名称+日期+时间。
答案 0 :(得分:2)
将所有内容从最深的文件夹移动到parent_directory
此命令将搜索当前目录的子目录,查找所有.vmx
个文件,并将它们移动到当前目录:
find . -type f -name '*.vmx' -exec mv {} . \;
编写一个shell脚本,该脚本遍历parent_directory中的每个目录并在每个目录中执行命令
以下命令将搜索当前目录的每个子目录并在其中执行command
:
find . -type d -execdir command \;
如果要在包含command
个文件的每个目录中运行.vmx
并将.vmx
个文件的名称作为参数提供给command
,请运行:
find . -type f -name '*.vmx' -execdir command {} +
或者,假设我们要为找到的每个.vmx
文件运行一次命令:
find . -type f -name '*.vmx' -execdir command {} \;