「デフォルトの対話型シェル」というテキストを含むファイルを見つけようとしています。次のgrepコマンドを使用して検索します。
grep -r --exclude-dir='/{var,Volumes,bin,cores,dev,sbin,tmp,usr}' "The default interactive shell" /
ただし、/usr
次のエラー メッセージに示すように、まだ検索します。
grep: /usr/bin/sudo: Permission denied
複数のオプションを作成せずに再帰的なgrepを実行し、複数のディレクトリを除外する方法は--exclude-dir
?システムはOSX 10.15.4です。
ベストアンサー1
リテラル名を持つディレクトリを除いています/{var,Volumes,bin,cores,dev,sbin,tmp,usr}
。これは一重引用符が原因で発生します。中かっこ拡張が引用されると、もはや中括弧拡張ではなくプレーンテキストになります。
中かっこを正しく拡張するには、引用符を削除します。
grep -R --exclude-dir=/{var,Volumes,bin,cores,dev,sbin,tmp,usr} \
-F 'The default interactive shell' /
-F
正規表現ではなく文字列を使用して検索するため、追加しました。