7章findコマンド

そのとき、メモを取るべきだったかもしれない。でも、ペンを探そう(find)と周りを見渡し、あなたが言ったことを考えようとしたとき、私たちは別れたの

—— They Might Be Giants, "Broke in Two" (2004)

本章では、findコマンドのクローンを作成します。findは、ファイルやディレクトリを検索するためのコマンドです。制約なしでfindを実行すると、ファイル、シンボリックリンク、ソケット、ディレクトリなどのエントリについて、1つ以上のパスを再帰的に検索します。制約をかける場合は、名前やファイルサイズ、ファイルタイプ、更新日時、パーミッションなどを指定できます。今回は、1つ以上の正規表現に一致する名前を持つファイルやディレクトリ、リンクを複数のディレクトリにまたがって検索できるようにします。

本章では、次の内容を学びます。

  • clapを使い、コマンドライン引数の値に制約をかける方法
  • unreachable!マクロを使ったパニックの起こし方
  • 正規表現を使って、テキストのパターンを検索する方法
  • 列挙型の作成方法
  • walkdirクレートでファイルパスを再帰的に検索する方法
  • Iterator::any関数の使い方
  • filtermapfilter_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.