シェルでfindコマンドの実行結果を `ls -l` のようなフォーマットで出力する
はじめに
find
コマンドを実行するとファイルの一覧が出力されます。
例えば、以下は /etc
ディレクトリの中から、拡張子 sh
を持つファイルを検索し一覧表示した結果となります。
ちなみに一番最初に見つかったファイルを ls -l
コマンドの引数として実行すると、以下のようにファイルのパーミッションや所有者、グループ、サイズが確認できます。
find
の実行結果を ls -l
のようなフォーマットで出力する方法はないでしょうか?
検証環境
方法1 : -ls
オプションを使用する
find
コマンドには、 -ls
オプションというものがあります。
-ls
オプションを付与すると、 find
の実行結果が -ls
のようになります。 ( 厳密には ls -dils
の実行結果と同様の表示のされ方となります。 )
実際に実行してみます。
左から 1列目が inode と呼ばれるもの、2列名が ブロック数 と呼ばれるものですが、それ以外は ls -l
の実行結果と同様です。
方法2 : xargs
を使用する
Busybox のような少し変わったDockerOS環境の場合には、 find
の -ls
オプションが利用できません。
そんなときには xargs
コマンドを使うことで実現できます。
find -ls
のフォーマットに完全に合わせたい場合は以下のように ls
コマンドに指定するオプションを -dils
とします。
ひとこと
所有者やパーミッションも含めて横串に確認したい場合に便利です。
ディスカッション
コメント一覧
コメントが上手くできない問題を修正しました!