rsyncがターゲットに名前のないフォルダを作成するのはなぜですか?

rsyncがターゲットに名前のないフォルダを作成するのはなぜですか?

次のスクリプトを使用して、プレフィックス付きのフォルダold_とその内容をUSBハードドライブに配置します。何らかの理由でrsync名前のないフォルダが作成され、データがそのフォルダにコピーされます。

rsync -vrhm --stats --progress --include='**/' --include='**/old_*/**'  --exclude='@Recycle' --exclude='*' /share/Projekte/ /share/02-18-Harburg/

これをどのように変更できますか?そして、以前に元から転送されたファイルを削除する
ことが可能かどうか疑問に思います。rsync

編集する:

ディレクトリをタップしようとすると、次の結果が表示されます。

$ cd 02-18-Harburg/^M/2017/

フォルダ名は次のとおりです。

$ ls -lisah
total 0
27 0 drwxr-xr-x 1 admin administrators 0 2018-05-18 13:32 ?/

ここに画像の説明を入力してください。

答え1

inはキャリッジリターン文字^Mです。02-18-Harburg/^M/2017/スクリプトには Windows スタイルの CRLF 行末があるため、パスはその名前rsyncで誠実に生成されます。/share/02-18-Harburg/<CR>

(この^M記号は通常ヒットを表しますCtrl+M。より一般的な記号はキャリッジリターン文字です\r。)

dos2unix、またはこれと同様に、スクリプトの最後の行sed -i 's/\r//' script(GNU sed仮定)を変更します。

ls端末に出力されるファイル名の特殊文字が好きではないので?。とにかく端末で実際のCRを見ることができないので、これは本当に良いです。ls --quoting-style=shell-escapeあまり明示的でない形式でファイル名を印刷するために使用されます。

関連情報