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