Corredor

ウェブ、プログラミングの勉強メモ。

find コマンドで対象ディレクトリ直下のファイルのみを絞り込みたい

find コマンドを使うと、対象ディレクトリのサブディレクトリ以下のファイルも検索対象に含んでしまう。

# カレントディレクトリ配下の Markdown ファイルを全て出力する
$ find . -type f -name '*.md'
./AAA.md
./BBB.md
./CCC/ccc.md
./DDD/ddd/DdD.md

そうではなく、カレントディレクトリの直下だけを検索対象としたい場合もある。雰囲気としては ls -1 *.md みたいな結果が取得したい場合だ。

# カレントディレクトリ直下の Markdown ファイルが欲しい場合
$ ls -1 *.md
AAA.md
BBB.md

# grep を使ったこんなやり方もできる
$ ls -1 | grep '.md'
AAA.md
BBB.md

find コマンドでこのようなことを行うには、-maxdepth オプションを使うと良い。

$ find . -type f -name '*.md' -maxdepth 1
./AAA.md
./BBB.md

こんな感じ。地味に知らなかったので役立った。

[改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

[改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる (WEB+DB PRESS plus)