バックアップとポータブル性のために外部ハードドライブに同期する必要があるかなり大きなディレクトリがあります。
/work
このフォルダを外付けハードドライブにコピーするには、次のrsyncコマンドを実行してみました。
rsync -avz /work /media/extern_drive --max-size '4G'
:
.
この記事では、単一のファイルソリューションを提供します。 rsync: ファイル名のコロンしかし、問題は、これらのファイルが複数のディレクトリに分散しているため、手動で実行できないことです。
ファイル名にコロンを含むファイルを再帰的に同期する方法はありますか?
答え1
あなたの外付けドライブは、ファイル名にコロンを許可しないVFATなどのファイルシステムを使用すると推定されます。
簡単なオプションは、ファイルをアーカイブ(zip
、、、、必要に応じて)にバックアップすることです。これにより、最大ファイルサイズを除き、ファイルシステムのどの特性にも制限がありません。7z
tar.xz
もう1つの可能性は、以下を使用することです。rdiff バックアップ、次のように、ターゲットファイルシステムに適していないファイル名を翻訳する役割を担います。提案渡すチリ。
サポートされていない文字を処理する一般的な方法は、ファイルシステム階層を利用してファイル名を変換することです。これヒューズファイルシステムポジショブルファイル名をWindows VFATサポート名に変換します。
mkdir ~/mnt
mount.posixovl -S /media/extern_drive ~/mnt
rsync -a /work ~/mnt
fusermount -u ~/mnt
バラよりUSBフラッシュドライブでrsyncを実行するときにコロンを変更するにはどうすればよいですか?詳細を学び、新しいソリューションが出てくるかどうかを確認してください。
答え2
次のように、名前にコロンを含むファイルパターンを明示的に含めたいとします。
$ rsync -avz --include '*:*' /work /media/extern_drive --max-size '4G'
はい
$ mkdir 1 2
$ touch 1/file{1..5}
$ touch 1/file:{1..5}
明示的に除外
$ rsync -avz --exclude '*:*' 1/ 2/
sending incremental file list
./
file1
file2
file3
file4
file5
sent 313 bytes received 114 bytes 854.00 bytes/sec
total size is 0 speedup is 0.00
明示的に含める
$ rm -fr 2/*
$ rsync -avz --include '*:*' 1/ 2/
sending incremental file list
./
file1
file2
file3
file4
file5
file:1
file:2
file:3
file:4
file:5
sent 573 bytes received 209 bytes 1,564.00 bytes/sec
total size is 0 speedup is 0.00