snowcpについて

snowcpは、

Windows用ソフトのFastCopyFire File CopyのようなソフトをLinuxでも使いたい、

という願望によって作成が開始されました。

特徴

  • MD5を用いたベリファイ(読み込みチェック)に対応。
  • バッファの量を指定可能。
  • /etc/mtabを参照して、コピー元とコピー先が別HDDか同一HDDかを判別し、別HDDの場合はスレッドを使用して読み込みと書き込みを同時に行います。
  • オプションを設定ファイルに保存し、読み込むことが可能。

仕様

  • コピー元とコピー先のタイムスタンプかファイルサイズが異なる場合、上書きします(オプションで変更可能)。
  • Ctrl + Cなどのキーを押して強制終了した際に、ファイルコピーを実行中だった場合はコピー先を削除します。
  • ファイルシステムがext4、XFS、btrfs、ocfs2のいずれかの場合、fallocate()を使用して連続領域を確保し、断片化を低減します。
  • シンボリックリンクはリンク先を参照せず、リンク自身をコピーします。
  • ベリファイ時にエラーが発生した場合、自動的にエラーログを~/.config/snowcp以下に保存します。
  • 設定ファイルよりも、実行時のオプションの方が優先されます。

旧バージョンの仕様

  • バージョン0.3.2までは、既存のファイルは強制的に上書きします(オプションで変更可能)。
  • バージョン0.3.2までは、コピー元がフォルダで、コピー先に同名のフォルダが存在する場合、タイムスタンプはコピー元のものに変更されます。

制限

  • 主にext4ファイルシステムでテストを行っています(一応NTFSとXFSも)。ext3では正常に動作すると思いますが、その他のファイルシステム(ext2・FAT・JFS・ReiserFS・Btrfsなど)での動作は未確認です。
  • 同様に、ネットワーク越しのコピー(nfs・smbfs・cifsなど)は未検証です。
  • ベリファイを行う際、コピー先ファイルシステムがO_DIRECTに対応していない場合、md5sumコマンドを使用します。
  • md5sumで比較する場合はシェルを起動するため、ファイル名やパス名に特殊文字が含まれている場合、比較できない可能性があります。bashの特殊文字には可能な限り対応しているつもりです。それ以外での動作チェックは行っていません。
  • GLibを使用しているため、KDEを標準にしている場合はGNOME関連のパッケージをインストールする必要があるかもしれません。

ライセンス

  • 修正BSDライセンスです。ソースコードに同梱しているLICENSEファイルを参照してください。
  • snowcpが使用しているMD5ライブラリはzlibライセンスです。