根据扩展名从多个目录复制重叠文件

bash scripting find cp

38 观看

1回复

1140 作者的声誉

我在多个目录中有文件,我只想复制在所有目录中都找到扩展名的文件。这是一个例子:

dir1
    file1.txt  
    file2.bcd
    file3.aa

dir2
    file4.ogg
    file5.txt
    file6.bcd

dir3 
    file7.pgp
    file8.bcd
    file9.aa

复制命令或脚本应仅将file2.bcdfile6.bcd和复制file8.bcdOutput目录,因为它们曾经是所有目录的通用目录。这只是一个示例,目录中的文件扩展名与文件类型无关,我想将所有文件扩展名复制到所有目录。

Output
   file2.bcd
   file6.bcd 
   file8.bcd  

如果我知道的重叠文件扩展名提前,我可以使用findcpmv作为讨论在这里

谢谢您的帮助,

编辑:如果有人需要,我已经解决了以下问题。

1. Find and print only file extensions. 
2. Sort and count the extensions. 
3. If count equals folders searched, then copy file to output directory. 

当然,这种方法假设每个文件扩展名在每个文件夹中都只能找到一次,而我的文件正是这种情况。

作者: deepseefan 的来源 发布者: 2017 年 9 月 15 日

回应 1


0

440 作者的声誉

您可以使用find命令使用以下命令将文件复制到输出目录 find ./ -type f -name '*.<file_ext>' -exec cp -r {} /output/ \;

用文件扩展名替换file_ext

作者: Pawan Kumar 发布者: 2017 年 9 月 15 日
32x32