- ベストアンサー
findで複数の場所から検索
findで /dir1 または /dir2 (さらには /dir3 も)からのファイルの検索はどのように書けばいいでしょうか? $ find "/dir1|/dir2" -name "nanashi" find: `/dir1|/dir2': そのようなファイルやディレクトリはありません $ find (/dir1|/dir2) -name "nanashi" bash: 予期しないトークン `/dir1' 周辺に構文エラーがあります よろしくお願いします。
- Linux系OS
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
いや普通に find /dir1 /dir2 /dir3 -name "nanashi"
関連する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です。
- ベストアンサー
- Solaris系OS
- ファイルを検索するコマンド findの使い方
ファイル名にある文字列を含むファイルの検索の仕方がわかりません.具体的にはsolという文字列を含むファイルの検索です.確かfind -name なんとかだったような気がするのですがよくわかりません.ディレクトリはいろいろで拡張子は不明です.よろしくお願いします.
- 締切済み
- Solaris系OS
- 【Linux】findコマンドの表示順
linuxのfindコマンドについて質問です。 例えば、あるディレクトリの構成が以下の通りだったとします。 /dir1/aaa.txt /dir1/zzz.txt /dir1/dir2/bbb.txt このとき、 find *.txt | sort を行うと /dir1/aaa.txt /dir1/dir2/bbb.txt /dir1/zzz.txt という順に表示されます。 (文字としてはソートされていますが、ディレクトリ構造としては滅茶苦茶です。) しかし、ファイル名を表示する際は通常はディレクトリ毎に表示したいため、 1つ目の例の順のように表示される必要があります。 このとき、どのようにすればfindによる検索結果を1つ目のようにディレクトリ順に表示できるのでしょうか。 実際はディレクトリ構成が複雑で、ファイルもディレクトリも非常に多くあります。
- 締切済み
- Linux系OS
- シェル find 複数条件で
hoge という名前のディレクトリ もしくは koge という名前のファイルを見つける find 文を教えて下さい。 hoge というディレクトリというだけの条件ならわかるのですが、 find ./ -type d -and -name hoge if文でいうところの条件をカッコで囲いたくなるような場合の書き方がわかりません。
- ベストアンサー
- Linux系OS
- Linuxでの検索はfindですか。
教えてください。Linux初心者です。 どのディレクトリにあるのかわからない、名前も一部しかわからない、ファイルを検索するときのコマンドはなんでしょう。 manを調べるとfindかと思うんですが、すべてのディレクトリについて調べるとか、名前のワイルドカードの指定の仕方がわからないんです。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- Cygwinのfind
cygwinであるディレクトリ以下のパーミッションを全て777にしたいのですが、昔 findを使った覚えがあるのですが失念しました。 どのようにしたらよいのでしょうか? それからfind / -name [キーワード]でlinux?で検索できていた?のですが、cygwin上で同じことをするとエラーになります。 linuxとCygwinはコマンドが違うのでしょうか? Cygwinの良書もご存知の方、教えてください。
- ベストアンサー
- Linux系OS
- windows7のコマンドでファイルを検索したい
windows7のコマンドでファイルを検索したいのですが、 調べてみると下記のようなコマンドで調べれるとの事でした。 dir /s /b *** しかしこれではカレントディレクトリからしか調べる事ができず不十分です。 全てのドライブからこのファイルを検索したいというコマンドを探しております。 unixでいえば find / -name *** のようなものです。 windows7のコマンドプロンプトではこのような事はできないのでしょうか。
- ベストアンサー
- Windows系OS
- UNIXの"find"コマンド同等のプログラム作成について
お世話になっております。 現在UNIXの"-type f"オプションのついた"find"コマンドと同等のプログラムをC言語で作ろうとしています。 つまりディレクトリ内のファイル(サブディレクトリ内のファイル含む、ディレクトリは除外)を全てフルパスで表示するプログラムです。 現在下記の関数を作成したのですがうまく動いてくれません。 どなたかご教授いただけないでしょうか。 【問題】 プログラム内の(**)前後で"dir1"が変更される。 (**)前:"/ディレクトリA/" (**)後:"/ディレクトリA/ディレクトリA内のファイル1" 本当は"dir1"には:"/ディレクトリA/"のままであってほしいです。 "strcat"コマンドの仕様が影響しているのでしょうか。 int _find(char dir1[] , int k ,int l , int m ) { DIR *dir ; struct dirent *dp ; struct stat statbuf ; char txt[1000] ; if ( m == 0 ) l++ ; if ( (dir = opendir(dir1)) == NULL ){ printf("%s",dir1) ; perror("opendir") ; exit(1) ; } for( dp=readdir(dir) ; dp != NULL ; dp=readdir(dir) ){ if ( strcmp(dp->d_name,".") != 0 && strcmp(dp->d_name,"..") != 0 ){ /* ROOT_DIR名-にファイル名を付け加えて、フルパスにする */ strcpy( temp[k][l] , dir1) ; strcat( temp[k][l] , "/" ) ; strcat( temp[k][l] , dp->d_name ) ; (**) stat( temp[k][l] , &statbuf ) ; if(S_ISDIR(statbuf.st_mode)){ l=_find(temp[k][l],k,l,1) ; }else{ sort[k][l]=temp[k][l] ; printf("temp[%d][%d]=%s\n",k,l,sort[k][l]); printf( "dir5=%s\n",dir1) ; l++ ; } } } closedir(dir) ; return l ; }
- ベストアンサー
- C・C++・C#
- ファイルを検索して削除する
/www 以下のディレクトリーに aaa.txt というファイルが存在する場合、 そのファイルが存在するディレクトリー内の全ての ***.txt を削除したいです。 find /www -name aaa.txt | xargs rm だと、aaa.txt だけの削除になります。 以下も考えましたが、これだと検索対象ディレクトリーが /www だけになります。 #!/bin/bash if test -e /www/aaa.txt then rm -f /www/*.txt fi どのように記述するとよいでしょうか。
- ベストアンサー
- Linux系OS
お礼
ありがとうございます。 そんなに簡単なことだったんですね。 盲点でした。