- 締切済み
UNIXのディレクトリ再起検索に関して。
UNIXのディレクトリ再起検索に関して。 【内容】 ディレクトリの再起検索した内容をテキストに出力したいのですが、あるディレクトリの配下はテキストに出力したくないため、除外をしたいのですが、うまくいきません。 以下ディレクトリの構成は添付してあります。 たとえば、ls -laR > a.txtコマンドを実行して、1,2以外のディレクトリ(A,B,C)をa.txtに出力したいのです。 ご教示お願いします。
- pika_011
- お礼率0% (0/5)
- その他(ITシステム運用・管理)
- 回答数5
- ありがとう数1
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
A/1/D がある場合どうする、とか A/B/2 がある場合どうする、とか ありますが。 ・-pruneを使って、 1、または2というディレクトリだったらその下は走査しない さもなくば、-printで表示 find . -type d \( -name "1" -o -name "2" \) -prune -o print
- trapezium
- ベストアンサー率62% (276/442)
find A/ -type d ! -path '*/1*' -print0 | xargs -0 ls -l > a.txt とか A/1, A/1/2 だけ除外なら find A/ -type d ! \( -name '1' -or -name '2' \) -print0 | xargs -0 ls -l > a.txt でもいいか。
- t_nojiri
- ベストアンサー率28% (595/2071)
再帰じゃないかなー?と思ってみたり まあ、あんまりUNIXの用法っぽく無いけどtreeコマンド系が有るものも有ります。 http://x68000.q-e-d.net/~68user/unix/pickup?tree 確かに、findで事足りるのであんまり需要無いとは思うのですが一応。
- SaKaKashi
- ベストアンサー率24% (755/3136)
-Wは-wでした find . |grep -v -w 1|grep -v -w 2
- SaKaKashi
- ベストアンサー率24% (755/3136)
cd A find . |grep -v -W 1|grep -v -W 2 とか
関連するQ&A
- ディレクトリ一覧を表示
unix環境で、ディレクトリやファイル一覧を表示するコマンドは「ls」ですが、 windows環境の「tree」コマンドのような視覚的に見やすく出力されるコマンドは ありませんか? また、lsコマンドではファイルも出力されますが、ディレクトリ構成だけの一覧を 出力する方法ってありますか?オプションを見てもちょっと無さそうなのですが・・
- 締切済み
- Linux系OS
- UNIXのコマンド教えて下さい。
UNIXで、lsの結果をファイルに出力する際、 ls > aaa.txtのようにすると出来ますが、 実行したコマンド "ls -la > aaa.txt" もファイルに出力させたいのですが、どうすれば出来ますか? 知ってる方教えて下さい!
- ベストアンサー
- その他(OS)
- ディレクトリ一覧作成の高速化
UNIXで / 配下のディレクトリ一覧をファイル出力することになりました。 今は # find / -type d > /tmp/hoge.txt としてますが、/ 配下のファイル数(ディレクトリも含む)が30万以上もあるため、 一覧を出力するだけで非常に時間がかかります。 ディスクは1マシン辺り30本程ついています。 (この規模のマシンが50台くらい) 後の方法は、ls でドバーっと出力して後からディレクトリだけを抽出する、という 感じくらいかなと思うのですが、もっと早く出力する方法があれば教えてください。 よろしくお願いします。
- 締切済み
- Solaris系OS
- 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
- UNIXで、ディレクトリを比較して、ファイル・ディレクトリの存在を比較したい
やりたいこと自体は単純なことなのですが・・ UNIXのコマンドで、 2つのディレクトリA、Bを比較して、 Aだけにあるディレクトリ・ファイルのみを取得できるようなものを教えてください。 (ファイルが同一かどうかは問題ではなくて、あくまでも存在不存在の比較です。) コマンドを組み合わせたり、オプションを使ってもかまいません。 diffコマンドってこういうとき使えないのでしょうか。
- ベストアンサー
- その他(OS)
- UNIX: catコマンドで無限ループ???
正確にはOS X 10.9.5のbashですが、UNIX一般の質問と思われるのでこのようなタイトルにしました。 catコマンドで、あるテキストファイルのあとに、同じテキストファイルをつくろうと思いましたが、無限ループになってしまい、巨大ファイルができてしまいます。 最初、このようにしてa.txtという1行のファイルを作りました。 [~]$ cat > a.txt aaa それで、同じa.txtを aaa aaa という2行のファイルにしたいと思い、以下のようなコマンドを入力しました。 [~]$ cat a.txt >> a.txt 自分の目論見としては、a.txtの内容がa.txtに追加されるので、2行になるかと思いましたが、応答がなくなりました。 Ctrl+Cで停止し、a.txtの内容を見ると [~]$ cat a.txt aaa aaa aaa aaa aaa aaa ・・・・・・ と何千行も入っています。 ファイルのサイズはこれぐらいでした。 [~]$ ls -al a.txt -rw-r--r-- 1 TYWalker staff 16898724 9 22 12:57 a.txt これは、なぜこのような現象になるのでしょうか。 また、私が本来やろうとしたことを、簡単なコマンドで行うにはどうすればいいでしょうか。 よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- ディレクトリとファイル
UNIXではディレクトリもファイルの一種であるかのように扱われていますが、その利点は何でしょうか? lsコマンドで一括表示されることしか思いつきません。どなたかご教授お願いします。
- ベストアンサー
- Linux系OS
- 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コマンドに詳しい方、宜しくお願いします。 それ以外にも、色々検索方法知っていたら教えて下さい!!
- ベストアンサー
- Linux系OS
- UNIX C ファイル出力
UNIX Cにてあるテキストファイルの中身(1行分)を、別のテキストファイルに出力したいのですが、どうすれば、いいでしょうか。 例。A.txt 123 yano 200612 ↓ B.txt 123 yano 200612
- ベストアンサー
- C・C++・C#