パスに特定のフォルダがあるファイルからテキストを検索し、一致する行とファイルのアクセス許可を表示します。

パスに特定のフォルダがあるファイルからテキストを検索し、一致する行とファイルのアクセス許可を表示します。

パスに特定のフォルダー(構成など)があり、特定のテキスト(ホスト名など)を含むすべての* .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現在のファイルを標準出力形式で一覧表示します。

おすすめ記事