查看資料夾內資料夾的大小和擁有者

查看資料夾內資料夾的大小和擁有者

有人知道如何查看目錄中的所有資料夾的大小、資料夾/檔案、擁有者嗎?

我知道的唯一命令是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/*

相關內容