ファイル名の難解な文字は時々奇妙なエラーを引き起こす可能性があります。私は最近バックアップファイルを操作していましたが、rsync
プロセスの開始から数分後にすべてのステータス出力が停止したことがわかりました。もう少し調べてみると、ファイル名にアジア文字が含まれていて原因であることがわかりました。シンボルの1つにUnicode値があり、0x0090
私のシェルはこれを次のように解釈したいと思います。制御文字DCS
。その後、対応するST
文字(値)がないため、0x009C
すべての出力が停止します。完了すると、rsync
その後にエクスポートされるすべてのテキストがただちに端末にオーバーフローします。
マニュアルページを参照しましたが、stty
実行中にその特殊記号の機能を一時的に削除する方法が見つかりませんでしたrsync
。これらの役割を無効にする方法はありますか?
答え1
理想的には、rsyncは印刷可能な文字のみを印刷する必要があります。
そうでない場合は、cat -v
バッファリングによってわずかな待ち時間が発生しても、フィルタユーティリティ(たとえば)を介してrsyncの出力をパイプできます。また、UTF-8でエンコードされたC1または0x90バイトをキャプチャするのに十分スマートであるかどうかはわかりませんcat -v
(どのバイトが発生するのかわかりません)。