質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

3回答

2820閲覧

grepコマンドで「/」直下から再帰的に文字列検索をすると固まる

sabx

総合スコア200

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2017/09/29 04:13

お聞きしたいこと

bashにて、

bash

1[root@ip-xxx-xxx-xxx-xxx /]# grep -r "hoge" / 2> /dev/null

と実行すると、検索処理が進まず固まってしまいます。
/etc配下だけだったり、/var配下だと検索ができるのですが、どのようにしたら/直下から特定文字列が含まれるファイルを検索することがで切るでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

スクリプトじゃなくて、手入力の場合だと、

Bash

1grep -r hoge /*

と打って、Enterでなく、Ctrl-X * と打つと、

Bash

1grep -r hoge /bin /boot /cgroup /dev /etc /home /lib /lib64 /lost+found /media /mnt /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var

のように展開されるので、/proc /sys など不要な物を削除してEnterするのも楽です。

投稿2017/09/30 01:28

otn

総合スコア84491

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sabx

2017/10/02 00:02

ご回答ありがとうございます! ディレクトリが展開されるのとても便利ですね…!
guest

0

Linux であれば、/proc/sys を見に行っているのではないでしょうか?
--exclude-dir= で除外してみてください。

grep -r --exclude-dir='proc' --exclude-dir='sys' 'hoge' /

投稿2017/09/29 16:07

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sabx

2017/10/02 00:01

ありがとうございます! --excludeオプションでディレクトリを除外できるのですね…! 参考にさせていただきます…!
guest

0

こんな感じでどうでしょう。

$ find / '*' -exec grep -H "home" {} \; 2>/dev/null

投稿2017/09/29 04:43

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sabx

2017/09/29 08:05

実行してみましたが、プロンプトが帰ってこない状態です… /varや/etcなど一部のファイルのが多い?ディレクトリはかなり時間がかかるようです。。。
KojiDoi

2017/09/29 08:21

対象ファイルが膨大にあれば時間がかかるのは当たりまえです。 どんなシステムか存じませんがルートからとなると万単位のファイルが存在していても不思議はないでしょう。 本当にルートからの検索が必要なのですか。ディレクトリを限定出来るのではありませんか? またfindではファイル名やタイプや作成日時で対象を絞ることができます。
sabx

2017/10/01 23:59

ご回答ありがとうございます! 確かに万単位のファイルが存在している可能性もありますよね… /varや/etcに検索対象が存在している可能性が高いので、ディレクトリを絞って検索してみます! 教えていただきましてありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問