はじめに
この資料は Rust 製のコマンドラインツール fclones について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
Rust開発環境を整える
fclones について
fclones は、ファイルのグループを識別し、不要になったファイルのコピーを削除する高機能なCLIツールです。ファイル名のパタンやの変更時間などで絞り込みや優先度を与えることができます。
GitHub - pkolaczk/fclones: Efficient Duplicate File Finder
特徴
- 同一ファイルのグループを特定する
- 重複ファイル検索
- N個以上のレプリカを持つファイルの検索
- ユニークファイル探し
- N個以下のレプリカを持つファイルを探す
- 処理するデータ量を減らす高度なファイル選択機能
- 複数のディレクトリルーツをスキャンする
- 標準入力から直接パイプで送られたファイルのリストで作業することができます。]
- 再帰的/非再帰的ファイル選択
- 再帰深度制限
- 拡張UNIXグロブによる名前とパスのフィルタリング
- 正規表現による名前とパスのフィルタリング
- 最小/最大ファイルサイズによるフィルタリング
- シンボリックリンクとハードリンクの適切な取り扱いについて
- 冗長なデータを削除する
- ソフトリンクまたはハードリンクを使用したファイルの削除、移動、置き換え
- 一部のファイルシステムでサポートされているネイティブのコピーオンライト(reflink)を使用して、冗長なファイルデータを削除します。
- パスや名前のパターンで削除するファイルを選択する
- 作成、変更、最終アクセス時刻、ネストレベルによって削除するファイルの優先順位を決定します。
- ハイパフォーマンス
- I/OとCPUの重いステージのすべてで並列処理能力を発揮します。
- デバイスの種類(SSDとHDD)に応じて、並列性とアクセス戦略を自動的に調整します。
- 最適化されたパス表現により、メモリフットプリントが少ない。
- 最大512ビット幅の高速非暗号化ハッシュ関数と暗号化ハッシュ関数の数々。
- ページキャッシュからデータを押し出さない(Linux専用)。
- オプションでファイルハッシュの永続的なキャッシュが可能
- 正確な進捗報告
- 多彩な出力形式により、結果の加工を容易にします。
- 標準テキスト形式
- ファイルサイズとハッシュを含むグループヘッダーで区切られたグループ
- ワンパス
- オプションのfdupes互換性(ヘッダなし、インデントなし、空白行で区切られたグループ)。
- 機械可読形式。CSV、JSON
制限事項
- コピーオンライトによるファイルデータ重複排除(reflink)は、Windowsはサポートしていません
- Linux以外のプラットフォームでは、一部の最適化が利用できません。
- 物理的配置によるファイルアクセスの順序付け
- ページキャッシュドロップビハインド
使用方法
fclones [OPTIONS] <COMMAND>