ファイル名に基づく正規表現がターゲットディレクトリのファイルと一致しない場合にのみファイルを移動します。

ファイル名に基づく正規表現がターゲットディレクトリのファイルと一致しない場合にのみファイルを移動します。

たとえば、説明するのが最善です。

ソースディレクトリ:

  • ファイル-a-1.txt
  • ファイル-b-1.txt

ターゲットディレクトリ:

  • ファイル-a-2.txt

予想される結果:

  • ファイル-a-2.txt
  • ファイル-b-1.txt

ファイルがソースディレクトリからターゲットディレクトリに移動され、ターゲットディレクトリにファイル名と部分的に一致するファイルがない場合にのみ、ソースディレクトリ内のすべてのファイルがターゲットディレクトリに移動されます。

ベストアンサー1

解決策:

  1. 宛先ディレクトリのファイルの一覧表示

  2. sedを使用してワイルドカード一致を置き換える

  3. rsyncによるパイプ--exclude-from

find target_dir | sed -r 's/\.\/(.+?)-.*/\1*/' | rsync --verbose --ignore-existing --exclude-from - src_dir/* target_dir

おすすめ記事