Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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中的文件夹大小?_Bash_Shell - Fatal编程技术网

比较bash中的文件夹大小?

比较bash中的文件夹大小?,bash,shell,Bash,Shell,上面几行代码有什么问题?我也试过了 如果[$stat-c%s$some_folder-lt$max_size]];然后 谢谢你的帮助,Thnaks 为了在脚本中使用POSIX du,有一个包装器函数可以帮助您只打印从第二个字段到最后一个字段的输出。这可以通过awk实现,或者下面是我如何使用eval将第二个到最后一个参数扩展到函数: actual_size="du -h $some_folder"; y='eval $actual_size` max_size=2MB if [[

上面几行代码有什么问题?我也试过了

如果[$stat-c%s$some_folder-lt$max_size]];然后

谢谢你的帮助,Thnaks

为了在脚本中使用POSIX du,有一个包装器函数可以帮助您只打印从第二个字段到最后一个字段的输出。这可以通过awk实现,或者下面是我如何使用eval将第二个到最后一个参数扩展到函数:

actual_size="du -h $some_folder";   
y='eval $actual_size`
max_size=2MB

    if [[ y -lt  $max_size ]]; then            
            echo `du -h $some_folder`
            cp "$file" $some_folder` #$file points to some file
例如,如果您希望在将多个目录复制到一个新文件系统之前获得这些目录的总大小,这将非常有用:

#!/bin/sh 

duprint()
{
    if [ "$#" -gt 1 ]
    then    printf "%s" $( eval printf '$'$(( $# - 1 )))
    fi
}

duwrap()
{
    duprint $(du -s $@ 2>/dev/null)
}

duwrap "$@"
最后,可以使用du包装器函数比较目录大小:

./duwrapper /bin /etc /lib /boot

请看一看:您需要阅读shell脚本教程,以便学习将命令结果分配给变量的正确语法
if [ "$(duwrap /lib)" -gt "$(duwrap /bin)" ]
then echo "/lib is greater"
fi