• ベストアンサー

UNIXでfindとls

UNIXでファイルを検索するのにfindコマンドを使用してますが 情報として、パス名だけが表示されます。 >find . -name ghi -print ./ghi ./abc/def/ghi ./abc/def/ghi/ghi これを、ファイルのいろんな情報を見ることはできないでしょうか? パイプを使おうと思ったのですが、いまいちわかってなくて できませんでした。

  • rally
  • お礼率61% (339/553)

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

  • ベストアンサー
  • few
  • ベストアンサー率100% (1/1)
回答No.1

> find ./ -name ghi -exec ls -l {} \; とかでできるとおもいます.

rally
質問者

お礼

ありがとうございます。できました。 findのオプションもいろいろあるんですね。 man で見なおしました。

その他の回答 (2)

  • hohihohi
  • ベストアンサー率34% (23/66)
回答No.3

パイプを使うというアイデアまでたどり着いたのでしたら(ちょっと違いますが)こんな手もあります。ls や find に限らず使えますので覚えておくと便利だと思います。 ls -la `find . -name ghi -print` (アポストロフィ(')ではなくバッククォート(`)である点に注意してください。)

rally
質問者

お礼

ありがとうございます。 この方法だと、find に限らずいろんなコマンドにも応用できそうですね。 バッククォートの使い方がいまいちわかりませんが調べてみます。

  • madman
  • ベストアンサー率24% (612/2465)
回答No.2

find . -name ghi -ls と入力してください。 また、man findでmanファイルをインストールしていれば、使い方がでます。

rally
質問者

お礼

ありがとうございます。 ですが、自分のところの find には-lsオプションに対応していないようです。 おそらくバージョンが違うのでしょうか・・・。 -exec でやることにします。 >find . -name ghi -ls find: オプション -ls は適当ではありません。

関連するQ&A

  • 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 コマンド(Unix)

    find コマンドで検索条件をANDで結んだりしたいのですが、うまくいきません。 あるサイトをまねて、find . -name abc -and -type d とやったのですが、-andでエラーメッセージが出てしまいます。(エラーメッセージはfind: bad option -andとfind:path-list predicate-list)-orの場合でも同じです。kshを使ってます。-and を使わないでfind . -name abcの時はきちんと検索できます。どなたか分かる方回答お願いします。

  • ファイルの拡張子だけを表示したい

    ファイルの拡張子だけを表示したい こんにちは。 Linuxのコマンドについて質問です。 とあるフォルダ配下にあるファイルをfindコマンドを使い検索し、そのフォルダ配下のファイルがどのような拡張子をもっているかを表示するコマンドを考えております。 たとえば、 /home/hoge/abc.xml /home/def.java /ghi.html /jkl.html というディレクトリとファイルがあったとして、ルートディレクトリからfindで検索をかけた場合、 .xml .java .html というように拡張子だけが抜き出されて表示される(重複した拡張子はのぞく)ようなコマンドです。

  • unixのfindコマンドについて。

    unix(AIX)のfindコマンドで「find ./ -type f」というコマンドで一覧を取得しています。 「./」の中に「hogehoge -> /tmp/test」というような シンボリックリンクを使用しているディレクトリがある場合も、 「./hogehoge/hoge.log」 というように表示させるにはどうすれば良いでしょうか。 ご回答の程、宜しくお願い致します。

  • unixのfindコマンドについて

    findコマンドでファイルを日付検索をする場合、一日前と検索してもタイムスタンプから24時間単位になってしまいます。単純に日にちが違うだけで検索するにはどうしたらいいでしょうか? 例ファイルpm11:00 を翌日am2:00にfindコマンドで検索したとき3時間しかたってなくても1日前の条件で検索できるでしょうか?

  • PHPで、フォルダーにあるファイルを配列に取り込みたい

    例えば次の様なフォルダーとファイルがあるとき \abc\a.txt \abc\b.doc \abc\def\b.doc \abc\ghi\a.txt \abc\ghi\b.doc 次の様な結果を得たいのですが、どうすれば良いでしょうか? $dir[/abc/a.txt] = "/abc/a.txt" $dir[/abc/b.doc] = "/abc/b.doc" $dir[/abc/def/b.doc] = "/abc/def/b.doc" $dir[/abc/ghi/a.txt] = "/abc/ghi/a.txt" $dir[/abc/ghi/b.doc] = "/abc/ghi/b.doc" 再帰関数でできそうに思うのですが、いくら考えても分かりません。 $path = "\abc"; function getfiles($path) {} print_r(getfiles($path)); みたいにして取り出せると助かります。 すみませんが教えてください。

    • ベストアンサー
    • PHP
  • UNIXでOR検索

    UNIXで、 find . -name とかで、 AAA BBB の両方で検索したいのですが可能なのでしょうか? また、 検索する際に、 カレントフォルダの配下ではないフォルダに対して検索をかけるにはどうすればいいのでしょうか? nameのところに ././workfolder のように相対パス指定にしても、絶対パス指定にしてもうまくいきませんでした。。

  • コマンドのフルパスの確認

    一般ユーザーでコマンドを実行する場合、フルパスで ないと実行できないものがあるので、 ・find / -name コマンド名\* -print ・locate コマンド名 この方法でフルパスを確認しています。ただ、この方法だと コマンド名の中にはヒットしすぎて時間がかかるのがあります。 表示が短くて確実にフルパスを表示させる方法はあるのでしょうか?

  • findコマンドでファイル名だけを返す事はできますか?

    findコマンドを使うとファイルのパスつきで返ってきますがファイル名だけを返す事は可能でしょうか?

  • findコマンドで2週間以内のファイルをあるフォルダに移動するのですが。。

    現在solarisのシステムを運用しています。 ログを毎日定時にバックアップしていますが、 findコマンドで2週間以内のファイル探し、オプションのexec mvで、あるフォルダに移動するという方法を取っています。問題なく移動されるものの、変なメッセージが表示されます。 cannot open /abc/def ファイルが見つかりません cannot open /abc/def/aaa.tar ファイルが見つかりません ・・・ というのがずらーっと出てきます。 これはどういう意味なのでしょうか? このままクーロンとかで運用しても問題ないでしょうか?