-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)。その他の便利なオプション。