奇妙な理由で、一部の人には改行文字を含むディレクトリがあります。これは次のように再現できます。
mkdir normal
mv normal why$'\n'would$'\t'you$'\r'dothis
私はこれらの奇妙な文字を含むrsyncファイルとフォルダを担当しています。
現在、rsyncを並列化しているので、ルートを再帰的に処理し、タスクを管理可能な塊に分割する必要があります。ルートディレクトリにはこれらの奇妙な文字はありません。実行するとrsync --dry-run
並列化できるファイルが提供されますが、たとえば、\n
役割は次のとおりです。\#012
、私はそれが8進数だと思います。
ただし、これをエスケープすると、rsync -a --files-from=files.txt
rsyncはこのフォルダを見つけることができないため、このエスケープを含む場所を送信できなくなります。files.txt
\#012
この状況ではどうすればよいですか? rsyncがこの情報を収集できるようにする追加のエスケープ手順がありませんか?次の理由でファイルを書き込むことはできません\n
。
somedumb\nthing
~になる
somedumb
thing
答え1
--from0
発信者が\0
。
cd /source/path1 &&
find . -print0 | rsync -av --files-from=- --from0 . remote:/target/
または
find /source/path1/./ -print0 | rsync -av --files-from=- --from0 / remote:/target/