Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 按用户分组Red hat FS中共享文件夹的使用情况_Bash_Shell_Unix - Fatal编程技术网

Bash 按用户分组Red hat FS中共享文件夹的使用情况

Bash 按用户分组Red hat FS中共享文件夹的使用情况,bash,shell,unix,Bash,Shell,Unix,历史记录:我有一个共享文件夹,系统的所有用户都可以访问该文件夹。每个人都声称他们用的不多。因此,我决定检查每个用户使用共享文件夹的次数 我可以通过du-sh获得总使用量。但不是在个人用户级别 我想,我想得太多了,无法完成这件事。也许,有一种直接的方法可以做到这一点 如果有人问了类似的问题,请共享URL。这里有几个功能可能会有所帮助 space() { local user=$1 local space=0 local tmp=`mktemp` find . -us

历史记录:我有一个共享文件夹,系统的所有用户都可以访问该文件夹。每个人都声称他们用的不多。因此,我决定检查每个用户使用共享文件夹的次数

我可以通过
du-sh
获得总使用量。但不是在个人用户级别

我想,我想得太多了,无法完成这件事。也许,有一种直接的方法可以做到这一点


如果有人问了类似的问题,请共享URL。

这里有几个功能可能会有所帮助

space() {
    local user=$1
    local space=0
    local tmp=`mktemp`
    find . -user $user -exec stat --printf="%s\n" {} \; 2>/dev/null >> $tmp
    for size in `cat $tmp`; do ((space=space + size)); done
    local humanized=`mb $space`
    echo "`pwd` $user $humanized"
    rm -f $tmp
}

mb() {
    local orig=$1
    if [[ $orig -gt $((2**20)) ]]; then
        echo -n $(($orig / 2**20))
        echo "mb"
    else 
        echo -n $(($orig / 2**10))
        echo "kb"
    fi
}
将它们粘贴到shell中,然后在命令行上调用它,如

$space <user>
相比

du -sh .
399M    . 
非常接近;)

du -sh .
399M    .