見つけてrsync?


24

14日以上10k以上のファイルを検索し、見つかったファイルを宛先にrsyncしたいのですが。

これらの2つのコマンドを組み合わせる方法はありますか?

find ./ -mtime +14 -size +10k 
rsync --remove-sent-files -avz /src /dest

回答:


33

以下に概説するオプションのいずれかを使用して、findの出力をrsyncに送信できます。

方法#1

これらの2つのオプションは非常に似ており、どちらもディレクトリをある場所に変更しfind、そこからコマンドを実行することを前提としています。

$ rsync -avz --remove-sent-files \
        --files-from=<(find ./ -mtime +14 -size +10k) ./ /dest

パイプを使用して、次のリストにフィードすることもできます。

$ find ./ -mtime +14 -size +10k -print0 \
        | rsync -av --files-from=- --from0 ./ /dest

方法#2

このメソッドはどこからでも実行できます。

$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
        | rsync --files-from=- --from0 /src/dir/ /dst/dir/
  • printf %P:削除されたファイル名とコマンドライン引数の名前。このように、srcディレクトリを使用することができます。最初にsrcディレクトリにcdする必要はありません。

参照資料

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.