web-dev-qa-db-ja.com

rsync +コピーされたファイルの名前を変更する

rsyncによってコピーが行われるときに、宛先ファイルの名前を変更する(プレフィックスとしてタイムスタンプを追加する)ことは可能ですか?

たとえば、次のコマンドを使用して、サフィックスを使用して宛先ファイルの名前を変更できます。

rsync --append  -arzvv --backup --suffix='_2015_09_10' /path/to/src/file /path/to/dst

ただし、タイムスタンプをプレフィックスとして添付したいので、宛先には次のようなものがあります。2015_09_10_file の代わりに file_2015_09_10

3
Alex

Rsyncは個々のファイルのレベルでこれを行うことはできませんが、ツリー全体を行うためのサポートはあります。例えば。:

/path/to/dst-2019-07-31/file
/path/to/dst-2019-07-30/file
/path/to/dst-2019-07-29/file
...

3つのオプションがあります。

  • --compare-dest=DIR新しいファイルのみが新しいディレクトリに作成されます。 all以前のバージョンのディレクトリをリストする必要があるため、これはおそらくあなたが望むものではありません。
  • --copy-dest=DIR変更されていないファイルは、ソースから転送するのではなく、DIRから宛先にコピーされます。
  • --link-dest=DIRは同じですが、ファイルの内容を複製しないため、宛先で使用するディスク容量がはるかに少なくなります。

あなたはそれをこのように使います:

rsync -a --link-dest=/path/to/dst-$YESTERDAY /path/to/src /path/to/dst-$TODAY
1
ams