如何仅复制该目录中具有特定文件的目录

如何仅复制该目录中具有特定文件的目录
Main_Directory
     |
Event_Subdirectories
     |
*.mcp .otherfiles

我想将所有 Event_Subdirectories 复制到 Event_subdirectory 中具有 *.mcp 文件的另一个 Main_Directory,但我不确定如何执行此操作。我使用rsync吗?

答案1

同步

使用 rsync 应该很容易做到,但并不完整。

假设./new_Main_Directory存在,否则mkdir ./new_Main_Directory

rsync -a --include '*/' --include '*.mcp' --exclude '*' Main_Directory/ new_Main_Directory/

这将仅复制 *.mcp 文件及其所在的目录结构。您始终可以rsync使用该选项测试命令--dry-run

来源:http://ubuntuforums.org/showthread.php?t=763833

CP

如果你想使用 cp,你可以尝试如下操作。

for d in ./*/; do
set -- "$d/"*.mcp
if [ -e "$1" ]; then
   # there is at least one .mcp file in $d
   cp -rp -- "$d" ./new_Main_Directory/
fi
done

来源:查找并复制包含文件类型的目录

答案2

rsync 命令并没有真正起作用,但是这个小 for 循环脚本运行得很好。它复制了一些其他随机文件,但这些文件已被删除。

相关内容