この資料は Rust 製のコマンドラインツール xcp について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
xcpは、Unixのcpコマンドの部分的なクローンです。完全な代替品としてではなく、よりユーザーフレンドリーなフィードバックと、特定のタスクで意味のあるいくつかの最適化を施したユーティリティです。 とくにNFSv4マウントされた領域でのコピーは大幅に性能が向上します。
GitHub - tarka/xcp: An extended cp
--no-progress
で無効にすることができます.copy_file_range
使用します。特に、ファイルシステムを意識しており、サーバーサイドでコピー操作を行うことで、ネットワークマウント上のコピーを大幅に高速化することができます。ただし、copy_file_range
とは異なり、スパースファイルは検出された場合は、適切に処理されます。parfile
:ツリーウォークとファイルごとのコピーを並列化するドライバ。(デフォルト)
以前からハードコードされているxcpのコピー方法parblock
:ブロックレベルでコピーを並列化する実験的なドライバ。
いくつかのアーキテクチャで性能向上の可能性がありますが、複雑さが増します。現在のところ、MacOSはサポートされていません。.gitignore
ファイルを理解するオプションがあります。--sparse=always
オプションと同様に、ファイルをスパースに変換する