3

我是 bash 编码的新手。

我正在尝试创建将遍历所有子目录的东西,并且在每个子目录中它应该将一个文件复制到该目录。

例如,如果我有以下目录

/dir1/  
/dir2/  
/dir3/  
...  
...  
/dirX/

还有一个文件fileToCopy.txt

然后我想运行一些东西来打开每个/dirX文件并放在fileToCopy.txt那个目录中。留给我:

/dir1/fileToCopy.txt
/dir2/fileToCopy.txt
/dir3/fileToCopy.txt
...
...
/dirX/fileToCopy.txt

我想在一个循环中执行此操作,然后我将尝试修改此循环以添加更多步骤,因为最终 .txt 文件实际上是一个 .java 文件,我想将其复制到每个目录中,编译它(其中包含其他类),然后运行它以收集输出。

谢谢。

4

2 回答 2

7

查找当前目录 (.) 下的所有目录并将文件复制到其中:

find . -type d -exec cp fileToCopy.txt '{}' \;
于 2012-10-22T09:32:26.333 回答
7
for i in dir1, dir2, dir3, .., dirN
    do
        cp /home/user1068470/fileToCopy.txt $i
    done

或者,您可以使用以下代码。

for i in *
    do                 # Line breaks are important
        if [ -d $i ]   # Spaces are important
            then
                cp fileToCopy.txt $i
        fi
    done
于 2012-10-22T09:29:42.027 回答