有人知道如何查看目錄中的所有資料夾的大小、資料夾/檔案、擁有者嗎?
我知道的唯一命令是du -hs *
But 它也顯示所有子資料夾並且不顯示所有者。
例如,我想取得「/my/path/」下的資訊大小、資料夾/檔案、資料夾/檔案的擁有者。
知道可以為我提供此資訊的命令嗎?
胡特曼弟兄
答案1
你可以嘗試一下find
指令:
find /my/path -maxdepth 1 -type d -printf "%u %g " -exec du -h --max-depth=0 {} \;
所有目錄(filter -type d
)應該被定位在起點/my/path
(option -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/*