2017-03-05 16 views
0

我想獲得由多個用戶共享文件夾中使用的總字節數。在多個用戶共享目錄的總用量 - LINUX

我有一個較大的腳本中得到這個:

cd /home/user1/SharedFolder/ 
echo "Total for user1 : " 
ls -lrt | awk '{ Total1 += $5 }; END { print Total1 " bytes"}' 

cd /home/user2/SharedFolder/ 
echo "Total for user2 : " 
ls -lrt | awk '{ Total2 += $5 }; END { print Total2 " bytes"}' 

這使我可以查看每個文件夾中都可以單獨的字節數。我不確定這是否是獲得我想要的結果的正確方法。

我有,從得到量包含該文件夾的所有用戶(用戶數可能有所不同)

我是相當新的使用Linux的問題,任何幫助將是讚賞。謝謝。

回答

1

第一課是要用於工作的工具:計數的所有文件的大小,在一個目錄,使用du。另外,don't parse ls

# variable "homeDirs" will be an associative array 
declare -A homeDirs 

# read the /etc/passwd file, and map each user to the home directory 
while IFS=: read -ra entry; do 
    homeDirs["${entry[0]}"]="${entry[5]}" 
done < /etc/passwd 

# loop over all the users 
for user in "${!homeDirs[@]}"; do 
    dir="${homeDirs[$user]}/SharedFolder" 
    # if that user has a shared folder 
    if [[ -d "$dir" ]]; then 
     # find the total size 
     totalSize=$(du -sb "$dir" | awk '{print $1}') 
     # and output the information 
     printf "Total for user %s: %d\n" "$user" "$totalSize" 
    fi 
done 
+0

謝謝你,這是完美的!我仍然習慣於所有的工具和功能,這真的很有幫助。 – HenryBeans159