我必须选择以 开头的所有文件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
第一行按修改时间对当前目录中的文件进行排序,从最新到最旧。