ApertureライブラリをNASに転送しようとしています。数十万のファイル(非常に小さいファイル)が含まれています。
OS Xが大きなファイルのコピーを終了した後、コピー操作の推定時間は2時間から4〜5日になります(そして増加します)。
解決策は、tarを実行してtarballをコピーすることですが、問題は、コピーしたいライブラリが約80 GBで、Macに残っているのが10GBしかないことです。
そのような状況でそれらをコピーする方法はありますか?
問題はおそらく、多くの小さなファイルで作業していて、ほとんどのコピーツールにはファイルごとのオーバーヘッドがあることです。システムのどこにも実際にtarballを作成しなくても、ファイルをtarで処理し、データを宛先にパイプして、もう一方の端でアーカイブを解凍することができます。
tar cf - "~/Pictures/Aperture Library" | (cd "/Volumes/NAS/" && tar xf -)
これの欠点は、プログレスメーターがないことですが、従来のコピーよりも大幅に高速になるはずです。
rsync
コマンドラインツールを使用して、ファイルの一方向の同期を行うことができます。 rsync
の仕組みにより、忍耐力がない場合でもプロセスを簡単に中断できます。後で簡単に再開できます。まだ転送されていないファイルのみがコピーされます。
Terminal.appを開いてから、次のようにrsync
を呼び出す必要があります。
rsync -avh --progress "~/Pictures/Aperture Library" "/Volumes/NAS/"
ここで、最初のパスはライブラリを指しています。ライブラリはデフォルトでPicturesの下にあるはずです。よくわからない場合は、ライブラリをターミナルコマンドラインにドラッグアンドドロップすると、パスが自動的に埋められます。 NASのパスについても同じことが言えます。
-a
オプションは、再帰的コピーを含むいくつかのデフォルトを設定するアーカイブモードを有効にします。 -v
は、コマンドをより冗長にします。 -h
人間が読めるファイルサイズをオンにします。
Rsyncは進行状況メーターを表示します。プロセスをキャンセルする場合は、を押します CtrlC。コマンドを再度呼び出して、rsync
を続行することができます。
外部デバイスが完全なsshシェルをサポートしている場合は、次のことができます。
tar cf - /your/dir|ssh -C 'tar xf - -C /directory/where/you/unpack'
ファイルが多いため、tarに-cオプションを使用することはお勧めしません。彼を印刷すると速度が低下します。ネットワーク上でオンザフライで圧縮するには、sshのフラグ-Cが必要です。小さなデータは小さなデータの暗号化/復号化を引き起こし、これにより速度が向上します。それでも速度が遅い場合は、クリプトチッパーを3desからtwofishに変更するか、可能であれば1desに変更できます。最後は安全ではありませんが最速です。
それ以外の場合はrsyncを使用できますが、rsyncは外部デバイスにインストールする必要があります。男を参照してください。 rsyncは、rsyncサーバーまたはsshによってデータを転送できます。
MHISoftfastcopyオープンソースをお試しください。ファイルとディレクトリを再帰的にコピーします。 https://github.com/mhisoft/fastcopy/releases