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
첫 번째 줄은 현재 디렉터리의 파일을 수정 시간을 기준으로 최신 항목부터 오래된 항목 순으로 정렬합니다.