我有1 GB的磁盘空间限制来托管我的应用程序,我使用了700MB。
但是我想使用这个命令从一个如此大的目录(大约600MB)创建一个war文件:
QMetaType::Type
这就是我遇到配额限制的原因,我无法做到以下几点。
我正在寻找一种在应用存档以节省磁盘空间时删除文件夹内容的方法
注意我无法在我的ssh shell中安装zip工具〜
答案 0 :(得分:0)
代码适用于测试目录,但无论如何都要先测试它,因为它删除文件。效率不高。
假设:300MB可用空间,用于破坏性压缩600MB 文件夹路径目录。没有文件太大 - 如果 folderpath 中的任何文件是300MB或更大,这将失败。
注意:如果' $ out '文件存在,什么都不做。首先find
将文件列表传输到while
,如果' $ out '在循环中不存在,创建它,不更新它 - 如果确实存在,只需更新它。每个传递添加一个文件,然后删除它,除非该文件是目录。循环结束后也删除空目录。
unset U ; in=folderpath ; out=ROOT.war ; \
[ -f $out ] || ( find $in | \
while read a ; do \
[ -f $out ] && U=u ; \
jar -cvf$U $out "$a" || { echo "Fail, stopping..." ; exit 1 ; } \
rm -d "$a" 2> /dev/null ; \
done ; rm -rd $in ; )