有选择地压缩最大 50M 的文件

有选择地压缩最大 50M 的文件

我必须选择以 开头的所有文件data*,并按日期选择最新文件,以便所选文件的压缩 zip 文件不应超过 50MB。如何在 bash 脚本中实现这一目标?

答案1

你会想要类似的东西

stat -c "%Y %n" data* | sort -rn | cut -d" " -f2- | 
while IFS= read -r file; do 
    if ! [[ -f my.zip ]]; then
        zip my.zip "$file"
    elif (( $(stat -c %s my.zip) < 50000000 )); then
        zip my.zip "$file"
    else 
        echo "zip file full"
        break
    fi
done

第一行按修改时间对当前目录中的文件进行排序,从最新到最旧。

相关内容