LinuCレベル1 ファイル・ディレクトリの操作と管理 問9
ファイル・ディレクトリの操作と管理/ファイルの配置と検索findコマンドとlocateコマンドの違いに関する説明として、誤っているものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「ファイル・ディレクトリの操作と管理」に対応。実際の試験問題ではありません)
- Afindは実行時にディレクトリツリーを実際にたどって検索するため、最新の状態を反映する
- Blocateのデータベースは、通常updatedbコマンド等で定期的に更新される
- Clocateは事前に作成されたデータベースを検索するため、findより高速なことが多い
- Dfindコマンドは、事前に構築されたデータベースを参照することで高速に検索する
正解:D
解説
findは実行のたびにディレクトリツリーを実際にたどって検索するため、最新のファイル状態を反映しますが、ツリーが大きいと時間がかかります。locateは事前に構築されたデータベースを検索するため高速ですが、データベースはupdatedbコマンド等によって定期的に(多くの場合cronで日次等)更新されるため、直近に作成・削除されたファイルが反映されていないことがあります。findがデータベースを参照して高速化しているという説明は誤りです。
選択肢ごとの解説
- A誤り(正しい記述)。findは実行時にディレクトリツリーを実際にたどるため、最新の状態を反映します。
- B誤り(正しい記述)。locateのデータベースはupdatedb等によって定期的に更新されます。
- C誤り(正しい記述)。locateは事前構築のデータベースを検索するため、一般にfindより高速です。
- D正しい(誤っている記述)。事前に構築されたデータベースを参照して高速に検索するのはlocateの特徴で、findは実際にディレクトリツリーをたどるため、この説明はfindとlocateが逆になっています。