• 締切済み

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

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

  • triq
  • お礼率100% (1/1)

みんなの回答

  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

AIXを使用した事がないのでIBMのサイトでコマンドリファレンスを見た限りでは「find -L ./ -type f」でうまくいきませんかね?

参考URL:
http://publib16.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/cmds/aixcmds2/find.htm
triq
質問者

お礼

補足を書いたらお礼が消えてしまいました… 参考URLに記述されているページと似たようなページ(Ver違いかもしれません)を参照していました。 しかし、参考URLに記述されているオプションを付けて実行すると、構文エラーとなってしまいました。 その後、解決致しました。 コマンドリファレンスには記述されていませんでしたが、 「-follow」を付けるとリンクを辿るようです。 ご回答ありがとうございました。

triq
質問者

補足

解決致しました。 コマンドリファレンスには載っていなかったのですが、 「-follow」を付けると、リンクも辿るようです。 ありがとうございました。

関連する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です。

  • AIXのfindコマンドで引数オーバー

    AIXで、findコマンドを使った際に"パラメータリストが長すぎます"と言うエラーが出ます。解決方法を教えてください。 find ./* -ntime +2 -type f 因みに、対象のディレクトリには3000ファイ

  • UNIXのコマンド

    こんにちは。 UNIXのコマンドに関してお聞きしたい事があります。 カンマ(;) パイプ(|) の使い方の違いについて教えてください。 2つともコマンドを連続で使えるようにするものだと思っているのですが。 例1) # cd /tmp ; pwd 例2) # more syslog.log | grep "error" 分かるか方いたら教えてください。

  • UNIXコマンド "grep" "find" の使い方教えて下さい。

    1)以下(1)、(2)を検索したいとします。  (1)"wrk_str"という文字列の記述があるファイル名  (2)tmp_file.c という名前のファイル名 2)ディレクトリ構成が以下になってるとします。  /home/users/複数のディレクトリが存在/複数のディレクトリが存在/複数のファイルが存在 3)/home/users/ 配下に検索したい文字列、ファイルがあるとした場合、どのように   探せばいいでしょうか?   /home/users/配下で得に条件なしでgrepすると、"Arg list too long"(量が多い?)の   メッセージが出て、検索できませんでした。 UNIXコマンドに詳しい方、宜しくお願いします。 それ以外にも、色々検索方法知っていたら教えて下さい!!

  • 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"を表示したいと思います。 上のコマンドと併せて一度でできるコマンドを教えていただけないでしょうか? 宜しくお願いします。

  • find -exec cp中にファイル更新すると

    find文についての質問です。 findオプション-exec cpによってコピー中に、別のファイルを更新すると、そのファイルがコピーされなくなってしまいました。 例えば、 find /tmp -mtime 1 -name "*" -type f -exec cp … により/tmp直下のファイルをコピー中に/tmp/a直下のファイルを更新すると、そのファイルはコピーできないといった結果になります。 findコマンドのオプションによりコピー可能にすることはできるのでしょうか? osはAIXです。 良い方法をご存知でしたら教えて下さい。お願いします。

  • Linuxのtarコマンドについて

    Linuxのtarコマンドについてわかる方がいれば教えてほしいです。 (tarコマンドというよりはLinuxの仕様かもしれません) Linuxで以下①パターンと②パターンでコマンドを実行したときに 指定の仕方でtarファイルの作成されるディレクトリが違うのですが なぜでしょうか。 Linux初心者なので詳しく教えていただけると助かります。 共通(前準備 (#はプロンプトです)) # DIR=/tmp/hoge/2021 # ls -l ${DIR} ~ test1.txt ~ test2.txt ~ test3.txt # cd ${DIR} ①パターン # tar -cvf ${DIR}.tar ./* (アスタリスクです) # ls -l /tmp/hoge ~ 2021.tar ⇒/tmp/hoge配下にtarができる ②パターン # tar -cvf 2021.tar ./* (アスタリスクです) # ls -l /tmp/hoge ~ 2021.tar ⇒/tmp/hoge/2021配下にtarができる

  • 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 ; }

  • UNIX入門者です。どうやって慣れていけばいいでしょうか。。

    こんにちは。よろしくおねがいします。 つい先日AIXベーシックの試験を受験し、不合格でした。 67%正解で合格のところ、62%で不合格でした。 UNIX自体、1ヶ月前に初めて触れたのですが、入門書などを読み、ディレクトリ構造やコマンドやviエディターの勉強をして試験に臨みました。(とはいえ理解度は低く、暗記という感じです) 不合格の感想としては、「もう少し理解度を深めてからでないと合格は難しい」「実機にてコマンドを打つ習慣をつけないと本だけでは体が覚えないだろう」と感じています。しかし、再受験してどうにか合格したいと思っています。 そこでアドバイスをいただきたいのですが (1)もしAIXベーシックを受験された方がいましたら、役に立つおすすめの問題集や本やサイトはございませんでしょうか。(受験されてない方でもアドバイスおねがいします) (2)UNIX入門者が初めてコマンドを叩く場合、どのようなことから始めると効率が良いでしょうか。 もう少しでもUNIXの概念を理解できれば、(コマンドの世界を)楽しく感じることができそうなのですが、その一歩手前で足踏みしていて、勉強が苦痛に感じているところです。どうかアドバイスよろしくおねがいします。

  • tcsh 別サーバのディレクトリ名取得

    いつもお世話になってます。 標題についてご教授願えないでしょうか 先日同一サーバ内でディレクトリ名一覧を取得する事はできました。 しかし、他サーバのディレクトリ名を取得するにはsftp等で 繋いで取得するしか方法はないのでしょうか 現サーバ:test@hoge1 他サーバ test@hoge2 現サーバから他サーバの/usr/home/htdocs/配下のディレクトリ名を取得 find test@hoge2:/usr/home/htdocs/* とやっても 「そのようなファイルやディレクトリはありません」 と言われてしまいます。 よろしくおねがいします