- PR -

findでのファイル検索

1
投稿者投稿内容
noku
常連さん
会議室デビュー日: 2005/07/21
投稿数: 20
投稿日時: 2006-07-13 21:13
findのファイル検索なんですが

find /test/sample/file/ -name "*_*" -type f

というコマンドを使うとします。
下記のファイルがあった場合は

/test/sample/file/123_123
/test/sample/file/aaa/444_444
/test/sample/file/123_123/aaa/bbb/ccc/555_555

全てヒットします。

これを指定ディレクトリ以下は検索しないようにさせたいのですが
ようは出力結果は

/test/sample/file/123_123
のみで。
/test/sample/file/
以下のサブディレクトリは検索させないようにさせたいです。

ちなみに
-maxdepth 0

の指定は使えませんでした。

皆さんご教授お願いします。

わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2006-07-13 21:35
-maxdepth 1 じゃダメ?
noku
常連さん
会議室デビュー日: 2005/07/21
投稿数: 20
投稿日時: 2006-07-13 21:50
わちゃさん
コメントありがとうございます。

本文にかいてますが「maxdepth」は使えませんでした。
せっかくアドバイス頂いたんですが、すいません。
わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2006-07-13 22:35
-maxdepth 0 じゃなくて、-maxdepth 1 です。

あと、猿っぽいですが、こんなのは?

find /dir/ -name "*_*" -type f | grep '^/dir/[^/]*$'
tmp
会議室デビュー日: 2006/01/12
投稿数: 11
投稿日時: 2006-07-14 09:13
> find /test/sample/file/ -name "*_*" -type f
find /test/sample/file/* -prune -name "*_*" -type f

はどうでしょう?
noku
常連さん
会議室デビュー日: 2005/07/21
投稿数: 20
投稿日時: 2006-07-18 10:12
わちゃさん

少し言葉足らずでした。
”-maxdepth”のオプション自体が無いんです。
findの細かいオプションはOSによって無い物もあるみたいです。

なので grepを使ってみます。
ありがとうございます。

tmpさん
ご返信ありがとうございます。
”-prune”も使ったのですが、ワイルドカードを使うと
UNIXの仕様で1024以上の(でしたっけ)リストをキャッシュにためれないので
”-prune”は使用できません。
便利なんですけどね。

1

スキルアップ/キャリアアップ(JOB@IT)