パスに特定のフォルダー(構成など)があり、特定のテキスト(ホスト名など)を含むすべての* .configファイルを見つけます。これにより、一致する行がファイル権限とともに表示されます。
以下のコマンドは、パスに「config」フォルダがあり、「hostname」テキストとファイル権限を持つすべての設定ファイルを提供します。
ls -la `find / -type f -name "*.config" -exec grep -li 'hostname' {} + | grep config`
サンプル出力
-rw-r--r-- 1 user users 2240 Jan 17 2014 /home/config/1.config
-rw-r--r-- 1 user users 2146 Aug 2 2013 /home/test/config/abc.config
これらのファイルには、「ホスト名」というテキストが含まれています。 「ホスト名」の一致が発生した行も見たいです。 Bashスクリプトなしでこれを行う方法はありますか?
ベストアンサー1
find
コマンドオプションを使用してください。
find -type f -path "*/config/*.config" -exec grep 'hostname' {} \; -ls
-path <pattern>
- ファイル名がシェルパターンと一致します。<pattern>
-ls
-ls -dils
現在のファイルを標準出力形式で一覧表示します。