私が欲しいrsync
:
- ソースからターゲットにすべてのファイルをコピーする
- ファイルがソースに存在しなくなった場合は、特定のファイルを除いてターゲットから削除します。
例外をリストする必要があります。別のファイルとして、そのオプションが利用可能なようです--exclude-from
。
可能ですか?
答え1
除外オプションにファイルのリストを含めることができるかどうかはわかりませんが、次のことを試すことができます。
$ rsync -avz --exclude delete_file_1.php --exclude dir_1/file4.txt \
directory_source/ directory_destination/
または、次のことができます。
$ rsync -avz --exclude 'dir_1/dir_2/file_3.php' source/ destination/
または、次のことができます。
$ rsync -avz --exclude 'dir*' <-- wildcard match here
私があなたの場合は、リモートターゲットと同期するテストフォルダを作成し、どのように進行しているかを確認します。除外オプションが正しい場合は、これを操作して多数のファイルを除外できます。
答え2
明らかに、これは次のようにrsyncを2回実行する場合にのみ可能です。
rsync -a source/ dest
rsync -a --exclude-from=files.txt --delete source/ dest
files.txt
削除したくないファイルが含まれています。