-maxdepth をチェックアウト find のフラグ
find . -maxdepth 1 -type d -exec ls -ld "{}" \;
ここでは、最大レベル深度として 1 を使用しました -type d ディレクトリのみを検索することを意味し、これは ls -ld の内容を長い形式でリストします。
find を利用する のオプション
実際には /bin/ls の exec はありません 必要;
検索には、まさにそれを行うオプションがあります:
find . -maxdepth 2 -type d -ls
関心のある 1 レベルのサブディレクトリのみを表示するには、-mindepth を追加します。 -maxdepth と同じレベルまで :
find . -mindepth 2 -maxdepth 2 -type d -ls
出力フォーマットを使用
表示される詳細が異なる場合、 -printf ファイルに関する詳細をカスタム形式で表示できます。シンボリック アクセス権とファイルの所有者名を表示するには、-printf を使用します %M で と %u format で .
グループを含む完全な所有権情報が必要であることに後で気付きました。 %g を使用 記号名の形式、または %G グループ ID (%U など) 数値のユーザー ID の場合)
find . -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'
これにより、適切なファイルについて、必要な詳細が得られるはずです。
ユーザーとグループで実際に異なる値を示す例を示します:
$ sudo find /tmp -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'
drwx------ www-data www-data /tmp/user/33
drwx------ octopussy root /tmp/user/126
drwx------ root root /tmp/user/0
drwx------ siegel root /tmp/user/1000
drwxrwxrwt root root /tmp/systemd-[...].service-HRUQmm/tmp
(読みやすいように編集:インデント、最後の行を短縮)
パフォーマンスに関する注意事項
この種のコマンドの実行時間はほとんど関係ありませんが、パフォーマンスの向上はここで指摘する価値があるほど大きいです:
名前ごとに新しいプロセスを作成する手間を省くだけでなく、膨大な task - find のように、情報を読み取る必要さえありません。
tree -L 2 -u -g -p -d
ディレクトリ ツリーを深さ 2 までのきれいな形式で出力します (-L 2)。ユーザー (-u) とグループ (-g) と権限 (-p) を出力します。ディレクトリのみを出力します (-d)。その他の便利なオプション。