微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以线性方式循环遍历子文件夹和文件

如何解决以线性方式循环遍历子文件夹和文件

我需要以下面的方式遍历子文件夹中的文件并复制到远程目录,我的源目录如下

 **Parent_Folder        Folder 1/            COMP1/          file1.txt file2.txt
                                           COMP2/          file1.txt file2.txt
                                           COMP3/          file1.txt file2.txt
                        
                         Folder 2/         COMP1/          file1.txt file2.txt
                                           COMP2/          file1.txt file2.txt
                                           COMP3/          file1.txt file2.txt


                         Folder 3/         COMP1/          file1.txt file2.txt
                                           COMP2/          file1.txt file2.txt
                                           COMP3/          file1.txt file2.txt**


I need to iteratively loop through files and copy to target folder in this manner from shell-script

    1.) Parent_Folder/Folder 1/Comp1/file1.txt 
    2.) Parent_Folder/Folder 1/Comp1/file2.txt 
    3.) Parent_Folder/Folder 1/Comp2/file1.txt 
    4.) Parent_Folder/Folder 1/Comp2/file2.txt 
    5.) Parent_Folder/Folder 1/Comp2/file1.txt 
    6.) Parent_Folder/Folder 1/Comp2/file2.txt 
        
    Target Folder / Comp1 / file.txt
                    Comp1 / file2.txt
                    Comp2 / file1.txt
                    Comp2 / file2.txt
                    Comp3 / file1.txt
                    Comp3 / file3.txt 
      
 

    // Do some processing on this new copied files ..
          
    7.) Parent_Folder/Folder 2/Comp1/file1.txt 
    8.) Parent_Folder/Folder 2/Comp1/file2.txt 
    9.) Parent_Folder/Folder 2/Comp2/file1.txt 
    10.) Parent_Folder/Folder 2/Comp2/file2.txt 
    11.) Parent_Folder/Folder 2/Comp3/file1.txt 
    12.) Parent_Folder/Folder 2/Comp3/file2.txt 

    Target Folder / Comp1 / file.txt
                    Comp1 / file2.txt
                    Comp2 / file1.txt
                    Comp2 / file2.txt
                    Comp3 / file1.txt
                    Comp3 / file3.txt 
   
// Do some processing on this new copied files ..
    13.) Parent_Folder/Folder 3/Comp1/file1.txt 
    14.) Parent_Folder/Folder 3/Comp1/file2.txt 
    15.) Parent_Folder/Folder 3/Comp2/file1.txt 
    16.) Parent_Folder/Folder 3/Comp2/file2.txt 
    17.) Parent_Folder/Folder 3/Comp3/file1.txt 
    18.) Parent_Folder/Folder 3/Comp3/file2.txt 

    Target Folder      / Comp1 / file.txt
                        Comp1 / file2.txt
                        Comp2 / file1.txt
                        Comp2 / file2.txt
                        Comp3 / file1.txt
                        Comp3 / file3.txt

我可以遍历一个简单的文件for file in Parent_folder/*; ,但我认为这不符合我的目的。任何帮助表示赞赏。

简而言之,将父文件夹子文件夹 COMP1、COMP2、COMP3 复制到目标文件夹 COMP1、COMP2、COMP3..

解决方法

之前关于 rsync 的评论是正确的。像这样的东西应该可以工作。

rsync -av Parent_Folder/Folder\ 1/ /path/to/Target/
# do some processing
rm -rf /path/to/Target/*  # do this to avoid ending up with mixture of Folder 1 + folder 2 data
rsync -av Parent_Folder/Folder\ 2/ /path/to/Target/
# do some processing
rm -rf /path/to/Target/*  # do this to avoid ending up with mixture of Folder 2 + folder 3 data
rsync -av Parent_Folder/Folder\ 3/ /path/to/Target/
# do some processing
rm -rf /path/to/Target/*  # do this to avoid ending up with mixture of Folder 3 + folder 1 data on next run

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。