事象 : grepをしたら「Input/output error」
- 環境
- Windows10 Pro にWSL2作成したUbuntuのディレクトリ
- GNU bash, version 4.4.23(1)-release (x86_64-pc-msys)
# Vue.jsのプロジェクト内のディレクトリでgrep
$ grep -rn 'メニュー画面'
grep: node_modules/postcss-reduce-initial/node_modules/.bin/browserslist: Input/output error
grep: node_modules/extract-css-chunks-webpack-plugin/node_modules/.bin/webpack: Input/output error
grep: node_modules/postcss-selector-parser/node_modules/.bin/cssesc: Input/output error
grep: node_modules/thread-loader/node_modules/.bin/webpack: Input/output error
grep: node_modules/webpack/node_modules/make-dir/node_modules/.bin/semver: Input/output error
grep: node_modules/webpack/node_modules/.bin/mkdirp: Input/output error
# ...省略...
原因 : 開けないファイルを開こうとするから
Input/Output errors during filesystem access attempts generally mean hardware issues.
ubuntu - "Input/output error" when accessing a directory - Unix & Linux Stack Exchange
上記の英語をざっくりと訳すと
「ファイル・システムへのアクセス試行中に「Input/Output errors」と表示される場合は、一般にハードウェアの問題を意味します。」
ということです。
エラーが表示されている対象を確認すると、どうやらコマンドの実態となるファイルを参照しようとしてしまっているようです。
対応 : 検索対象を絞る
今回は、node_modules
ディレクトリ配下は検索対象にする必要がなかったので--exclude-dir
オプションを利用して除外しました。
$ grep -rn --exclude-dir=node_modules 'メニュー画面'
layouts/default.vue:124: title: "メニュー画面",
pages/menus/register.vue:7: メニュー画面に戻る
pages/menus/menu/_id.vue:7: メニュー画面に戻る