【发布时间】:2023-01-04 12:00:32
【问题描述】:
有一个目录必须在不同的命令发生之前和之后运行,并且该目录的子目录包含也必须运行的文件。是否有一个我可以使用的命令将运行目录中的所有文件+其中的子目录,以便我可以运行命令前目录的文件,运行命令,然后运行命令后目录的文件?它们都是不同的文件类型,所以有些是 .sh、.tcl 等,所以我只是想知道在 bash 中是否有自动执行此操作的方法。
【问题讨论】:
-
我试过 run-parts 它只会运行目录中的文件,而不是子目录
-
只需
find that/dir -type f -exec {} \;即可。 -
但是在不同位置有多个同名目录。例如——将有一个根目录,其中包含一个名为“Precommand”的文件夹和一些其他文件夹(例如)另一个名为“Business”的文件夹,在企业内部它可能有相同的文件夹“Precommand”,这也需要运行我相信每次调用目录时单独制作命令对我来说都很好,但它似乎效率低下..我宁愿每次找到一个名为“Precommand”的目录并在其中运行所有东西时都进行命令搜索......
-
好的,
find $(find -type d -name Precommand) -type f -exec {} \; -
对于一些令人费解的事情,您可能不想依赖查找结果中的顺序,
find $(find -type d -name Precommand) -type f | sort | sh
标签: bash