gpt4 book ai didi

linux - 如何编写脚本从父目录到最深的文件夹目录执行命令?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:04 25 4
gpt4 key购买 nike

我正在尝试通过 ovftool 自动将 .vmx 转换为 .ova,并且这些 .vmx 文件是从 ghettoVCB 生成的。所以我正在编写一个脚本来使转换自动化工作。

我的问题是如何编写一个 shell 脚本,从 parent_directory 遍历每个目录并在每个目录中执行命令?或者可以将所有内容从最深的文件夹移动到 parent_directory? (此解决方案可能需要花费一些时间才能将这些文件从最深的文件夹移动到 parent_directory)。

目录结构如下:parent_directory/automation/automation-2016-04-18_19-08-32/automation.vmxparent_directory/bulls/bulls-2016-04-18_18-28-57/bulls.vmx

这是另一种结构布局

父目录

  • 自动化
    • 自动化-2016-04-18_19-08-32
      • 自动化.vmx
  • 多头
    • 公牛队-2016-04-18_18-28-57
      • 公牛.vmx

parent_directory 中的子文件夹名称不符合模式。可以是任何名字。文件夹“automation-2016-04-18_19-08-32”是子文件夹的名称+日期+时间。

最佳答案

方法一

move everything from the deepest folder to parent_directory

此命令将搜索当前目录的子目录,找到所有.vmx 文件,并将它们移动到当前目录:

find . -type f -name '*.vmx' -exec mv {} . \;

方法二

write a shell script that goes through each directory from a parent_directory and executes a command in each directory

下面的命令会搜索当前目录的每一个子目录,并执行其中的command:

find . -type d -execdir command \;

如果您想在包含 .vmx 文件的每个目录中运行 command 并提供这些 .vmx 文件的名称作为参数命令,然后运行:

find . -type f -name '*.vmx' -execdir command {} +

或者,假设我们想为我们找到的每个 .vmx 文件运行一次命令:

find . -type f -name '*.vmx' -execdir command {} \;

关于linux - 如何编写脚本从父目录到最深的文件夹目录执行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com