そのディレクトリに特定のファイルがあるディレクトリのみをコピーする方法

そのディレクトリに特定のファイルがあるディレクトリのみをコピーする方法
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ループスクリプトは正常に実行されます。他の任意のファイルをコピーしましたが、そのファイルは削除されました。

関連情報