Ubuntu - 如何在文件夹及其子目录上运行命令,并在输出的每个文件夹中创建一个文件?

时间:2014-05-11 17:09:31

标签: java shell ubuntu terminal directory

我有一个目录myDir,其中包含许多子目录。

我想执行以下命令:

java -cp bin Main

在每个子目录上,然后在子目录中创建一个带有命令java -cp bin Main输出的文件(在每个子目录中)。

我试过了:

// edited , doesn't work   

但它确实不起作用

知道怎么做吗?

谢谢

3 个答案:

答案 0 :(得分:0)

$i将拥有完整路径(相对于$base)。请改为iterator "$dir/$(basename $i)"iterator "$i"

您的脚本也没有按照您的说法进行操作,我怀疑您要在java -cp bin Main内运行if,而不是else(如果文件是目录。)

答案 1 :(得分:0)

这是我的解决方案:

find /home/a/Desktop/myfolder -type d -exec sh -c '(cd {} && YOUR-COMMAND-GOES-HERE)' ';'

您可以使用YOUR-COMMAND-GOES-HERE

代替java -cp bin Main

所以:

find /home/a/Desktop/myfolder -type d -exec sh -c '(cd {} && java -cp bin Main)' ';'

答案 2 :(得分:0)

让你的java程序在所有子文件夹上运行:list all files from directories and subdirectories in Java

或者传递您希望java程序将输出创建到java程序的所有文件夹。类似的东西:

public class Test
{
    public static void main(String[] args)
    {
        if (args != null && args.length>0)
        {
            for (int i = 0; i < args.length; i++)
            {
                System.out.println("Create a file in the folder "+args[i]);
            }
        }
        else {
            System.out.println("args were not provided");
        }
    }
}

使用

执行

java -cp $ YOURCLASSPATH测试`find。 -type d`