私はそれを使用しています
rsync -avh --progress --delete `find /path/to/files -type f -printf "%p\n" | sort -rn | head -n 5` /path/to/backup/
最新の5つのファイルをバックアップしてください。この--delete
オプションは、検索出力の5つのファイルに含まれていない場合は、ターゲットフォルダのファイルを削除する必要があります。残念ながら、この--delete
オプションは機能しません。どうすればうまくいくか、私がすることを変えることができますか?
答え1
rsync
手動状態:
--delete
これは
rsync
、受信側から不要なファイル(送信側にないファイル)を削除することを意味します。ディレクトリにのみ適用同期中です。
複数の個別ファイルを転送しているため--delete
動作しません。
答え2
まだあなたの質問についてコメントするのに十分な評判を得ていないようです。
まず、使っているファイル名を上げてくれれば役に立ちそうです。また、サブディレクトリ構造が何であるかを知りたいです/path/to/files
。私がこれを言うのは、find
あなたが実行していることが実際に最新のファイルを印刷しているかどうかを知りたいからです。ここではタイムスタンプを操作しないので、私が尋ねるのです。したがって、この時点で明確にするために検索結果を貼り付けることもできます。
-n
そしてぜひ必要なのか知りたいですsort
。トピックから少し外れましたが、1つ作成できますsort | tail -5
。
ファイルの内容(ターゲットファイルを含む)の追加出力を見ないと、このアプローチが機能するかどうかはrsync --delete
わかりません。これはあなたに効果がありましたか、それともちょうど発見されていますか?
あるいは、findの-newer、-delete、および/またはmtimeフラグを見ることもできます。