フォルダツリーを繰り返してサブフォルダファイルをコピーするためのシェルスクリプト[閉じる]

フォルダツリーを繰り返してサブフォルダファイルをコピーするためのシェルスクリプト[閉じる]

フォルダを繰り返すスクリプトを作成しようとしています。このフォルダには多くのサブプロジェクトがあります。各サブプロジェクトに移動して、srcフォルダを同じフォルダではなく外部フォルダにコピーする必要があります。

find ~/project/ \( -name 'src' \) -delete

これがすべての外部フォルダから既存のフォルダを削除する方法srcですが、新しいフォルダをコピーする方法がわかりません。編集:私はノートに構造を描きました。 Bycp私の言葉は交換を意味します。 ここに画像の説明を入力してください。

ベストアンサー1

~からプロジェクトの場合は、rsyncという素晴らしいバックアップツールを使用できます。

rsync -av project/ .

上記のコードは、すべての子ディレクトリを親ディレクトリにコピーします。名前付きサブディレクトリだけが必要な場合はもう少し複雑なので、次の場所で実行する必要があります。以内にこれプロジェクト/目次:

find . -maxdepth 2 -type d -name "src" -exec rsync -aRv {} .. \;

私たちがここですることはあなたのものですソースコードサブディレクトリをコピーしてrsyncに渡します。最も重要なことは次のとおりです。ターゲットで相対パス名を保持するように rsync に指示するフラグです。

おすすめ記事