• ベストアンサー

findの使用方法2

find . -type d ! -perm 770 -o -perm 750 上記の文をBshにて実行したのですが、ディレクトリのみの出力って出来ないのでしょうか? 現在だと、マッチしたディレクトリ配下のファイルまで表示されてしまいます。 ご存知の方がいらっしゃいましたら、教えてくださいませ。

質問者が選んだベストアンサー

  • ベストアンサー
  • k-841
  • ベストアンサー率27% (129/465)
回答No.2

直接の回答ではありませんが、以下じゃダメですか? ls -la | grep ^d | grep -v ^drwxr.x--- | awk ' { print $9 } ' 最後のawkの$9はlsの出力によりますので適宜変えて下さい。 -maxdepthは実装によって無視されるものもあったような気がします。

その他の回答 (1)

  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.1

こんばんは。find ってエラーメッセージが不親切ですよね。 条件に「-maxdepth 1」を付加してはどうですか?

参考URL:
http://member.nifty.ne.jp/sagami/linux/l5tip.htm,http://www.sixnine.net/roadside/find.html

関連するQ&A

  • findの使用方法

    findの使い方について質問があります。 パーミッション検索で、2種類のパーミッションに該当しないものを探したいのですが・・・・ find . -type d ! -perm 770 -or -prem 750 -print find . -type d ! -perm 770,750 -print find . -type d ! -perm '770,750' -print 上記のように記述してもうまくいきませんでした。 他に方法があるのであれば、教えてください。

  • unixのfindコマンド

    unixのfindコマンドで、ある複数のディレクトリから指定のファイル名だけを 検索し、その結果をgrepしたいのですが、 例えば 01_dir 02_dir : 11_di : 21_dir : と言うディレクトリがあります。 そこから、「0」で始まっているディレクトリの中なら拡張子が*.txtを 検索し、その検索したファイルに対して、grepを実行したいのですが、 上手くいきません。 もちろん、各ディレクトリには、「.txt」以外のファイルもありますし、 ファイル名にも条件を付与したいです。 以下の様に、 find . -name "0*_dir" -type d -print | xargs ls -l *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs ls *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls -l '{} /*.txt' | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls {} "検索文字" とやってみたのですがだめでした。 find ./ -type d \( -name '1_*dir' -o -name '2*_dir' -o -name '3*_dir' \) -prune -o -type f -print と「-prune」で除外するディレクトリを指定すればできなくはないですが、 すべてのディレクトリ書くのはいい方法ではないです。 よい方法をお願いします。 OSは、Solaris 11.3です。

  • シェル find 複数条件で

    hoge という名前のディレクトリ もしくは koge という名前のファイルを見つける find 文を教えて下さい。 hoge というディレクトリというだけの条件ならわかるのですが、 find ./ -type d -and -name hoge if文でいうところの条件をカッコで囲いたくなるような場合の書き方がわかりません。

  • find -perm -o+w -exec ls -la {} \;

    タイトルのコマンドに関しまして、条件(他のユーザーに書き込み権限が与えられているファイルを検索)にマッチしたファイルの詳細を表示するコマンドで間違いないと思いますが、『{}』 は何を指しているのでしょうか? これが、ワイルドカードの『{}』を表しており、中身を指定していないのならば、[]でも代用できるはず。と思い、 $find -perm -o+w -exec ls -la [] \; としたら、lsコマンドに怒られてしまいました。 {}を指定しなかった場合は、期待に沿わない実行結果(マッチしたファイルの数だけ ls -la が実行される)が得られます。 『{}』は、何を意味しているのでしょうか? ご回答の程、お願いします。

  • ディレクトリ一覧作成の高速化

    UNIXで / 配下のディレクトリ一覧をファイル出力することになりました。 今は # find / -type d > /tmp/hoge.txt としてますが、/ 配下のファイル数(ディレクトリも含む)が30万以上もあるため、 一覧を出力するだけで非常に時間がかかります。 ディスクは1マシン辺り30本程ついています。 (この規模のマシンが50台くらい) 後の方法は、ls でドバーっと出力して後からディレクトリだけを抽出する、という 感じくらいかなと思うのですが、もっと早く出力する方法があれば教えてください。 よろしくお願いします。

  • findコマンドについて

    findコマンドをコマンドプロンプトより下記のとおり実行しました。 find "保留中" D:\find.txt 想定された結果を得る事ができました。 しかし、同じコマンドをバッチファイル(find.bat)として実行すると、コマンドを 繰り返し実行し続けていて終了せずに、結果を表示する事ができません。 何がいけないのでしょうか?

  • chmod find パイプ 一緒にやりたいとき

    こんにちは、はじめまして。下記のようにすると、正常に実行されるのですが、 chmod 766 `find ./* -type f -print` \; || ll ./* 下記のような、エラーメッセージでます。なぜなぜ?? chmod: cannot access `;': そのようなファイルやディレクトリはありません (やっていること: 自分の(カレント)ディレクトリの下のファイル(通常ファイル) 全部自分に実行権つけて、その結果を "|(パイプ)" で渡して、ls -l で全部表示 ) はじめての質問ですので、よろしくお願いねー??

  • ディスクの使用サイズ表示の違い

    UNIXコマンドであるディレクトリ配下のディスクの使用サイズを表示させようと思っています。 ・du -k ・find -lsでファイルサイズを足す(ファイル、ディレクトリ、シンボリックリンクを含む) ・ls -Rでファイルサイズを足す(ファイル、ディレクトリ、シンボリックリンクを含む) 上記3つで行いましたが、全て違う結果になりました。 なぜこの様な事になるのでしょうか? よろしくお願いいたします。

  • findとxargsの使い方で

    unixで、findとxargsを使って検索を行っています。 以下の様に、 find . -type f | xargs コマンド 例えば、 find . -type f | xargs ls -l を実行すると、 「xargs: 入力ファイルが壊れています。: バイトシーケンスが正しくありません。」 が出力されます。 何が原因なのでしょうか。 また、解消方法はどのようにすればよいのでしょうか。 環境は solaris10 LANG=ja_JP.UTF-8 sh or bash

  • findコマンドについて

    unix コマンドについて質問です。 ファイル1の中に"A=1" ," B=2", "C=3"という文字列が入っているとします。 ファイル2の中に"D=1" , "E=2", "F=3"という文字列が入っているとします。 そのことを自分は知りません。 Aという文字が入っているファイルを探す為、 以下のfindコマンドを打ち、ファイル1のlsの結果が表示されました。 find ./ -type f -exec grep 'A' {} \; -ls その後、出力されたファイル1の中からBとCでgrepしてB=2", "C=3"を表示したいと思います。 上のコマンドと併せて一度でできるコマンドを教えていただけないでしょうか? 宜しくお願いします。