再帰コピーは特定の名前のディレクトリをスキップします。

再帰コピーは特定の名前のディレクトリをスキップします。

約100GBのディレクトリがあります。特定のフォルダをスキップしてこのディレクトリを別の場所にコピーする必要があります(フォルダが多い)。以下は私の要件を示す壊れたコードです。

$ cp -r ~/directory_to_copy /path/to/copy --skip=foo --skip=bar

このコマンドには例の結果があります。元のディレクトリツリーは次のとおりです。

~/directory_to_copy
  aaa
    foo
    doo
      bar
  bbb
    ccc
      ddd
        bar
      eee

コピーされたツリー

/path/to/copy/
  aaa
    doo
  bbb
    ccc
      ddd
      eee

私の目的に合わせてコマンドを書くにはどうすればよいですか?

ベストアンサー1

あなたが望むrsync

rsync -va --exclude=foo --exclude=bar ~/directory_to_copy /path/to/copy 

--exclude不要なファイルやディレクトリを除外するために使用されます。

-vrsyncを冗長にします(オプション)。

-arsync に再帰的にコピーし、ファイル属性を保存するように指示します。これはオプションですが、使用しない場合は再帰コピーを-a使用できます。-r

より複雑な要件の場合は、除外オプションと埋め込みオプションを指定できます。オプションを指定し-F.rsync-filterソースディレクトリ階層の別の場所にファイルを配置して、あるディレクトリから別のディレクトリに除外/含める設定を変更することもできます。man rsync詳細があります。

おすすめ記事