ディレクトリ内のすべてのフォルダを、サイズ、フォルダ/ファイル、所有者とともに表示する方法を知っている人はいますか?
私が知っている唯一のコマンドは、du -hs *
しかし、それはすべてのサブフォルダーも表示し、所有者は表示しません。
たとえば、「/my/path/」の下にあるフォルダー/ファイルのサイズ、フォルダー/ファイル、所有者の情報を取得したいとします。
この情報を提供できるコマンドをご存知の方はいらっしゃいますか?
Br ハルトマン
答え1
次のコマンドを試すことができますfind
:
find /my/path -maxdepth 1 -type d -printf "%u %g " -exec du -h --max-depth=0 {} \;
-type d
開始点/my/path
(オプション)の1レベル下のすべてのディレクトリ(フィルタ)を検索します-maxdepth 1
。その後、
- 所有者とグループを印刷するオプションを使用し
-printf
て、 du --max-depth=0
見つかった各ディレクトリに対して ( )を呼び出し、メカニズムを使用して、{}
前のオプションの出力の直後に名前と合計サイズを出力します。-printf
-exec
答え2
ここに簡単なスニペットを用意しました
#!/usr/bin/env bash
unset fname owner size i
for f in "$@"
do
fname[i]="$f"
owner[i]=$(stat -c %U "$f")
size[i++]=$(stat -c %s "$f")
done
for i in "${!fname[@]}"
do
printf "User %s owns %s and the size is %d Kbytes\n" "${owner[i]}" "${fname[i]}" $((${size[i]} / 1024))
done
スクリプトを実行可能にするか、次のように実行します。 bash script_name [path]
chmod u+x script_name
そして実行する
./script_name /my/path/*