7章findコマンド
そのとき、メモを取るべきだったかもしれない。でも、ペンを探そう(find)と周りを見渡し、あなたが言ったことを考えようとしたとき、私たちは別れたの
—— They Might Be Giants, "Broke in Two" (2004)
本章では、find
コマンドのクローンを作成します。find
は、ファイルやディレクトリを検索するためのコマンドです。制約なしでfind
を実行すると、ファイル、シンボリックリンク、ソケット、ディレクトリなどのエントリについて、1つ以上のパスを再帰的に検索します。制約をかける場合は、名前やファイルサイズ、ファイルタイプ、更新日時、パーミッションなどを指定できます。今回は、1つ以上の正規表現に一致する名前を持つファイルやディレクトリ、リンクを複数のディレクトリにまたがって検索できるようにします。
本章では、次の内容を学びます。
clap
を使い、コマンドライン引数の値に制約をかける方法unreachable!
マクロを使ったパニックの起こし方- 正規表現を使って、テキストのパターンを検索する方法
- 列挙型の作成方法
walkdir
クレートでファイルパスを再帰的に検索する方法Iterator::any
関数の使い方filter
、map
、filter_map
を連鎖させる方法- Windowsか否かの条件付きでコードをコンパイルする方法
- コードのリファクタリング
7.1 findの動作
まずは、find
の動作について説明します。以下に、BSD版の500行程度あるマニュアルページの冒頭を示します。本章のプログラムでは、1つ以上のパスに存在するエントリを検索する必要があります。また、これらのエントリは、ファイル、リンク、ディレクトリ、および任意のパターンに一致する名前でフィルタリングできます。 ...
Get Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.