SoFunction
Updated on 2025-03-10

Shell scripts realize code sharing of copying large files to display percentages

strace -q -eread cp -- "${1}" "${2}" 2>&1 \
| awk '{
    count += $NF
    if (count % 10 == 0) {
        percent = count / total_size * 100
        for (i=0;i<=percent;i++)
            printf("=");
        printf(">");
        printf ("%2.0f%%\r", percent);
    }
}
END { print "" }' total_size=$(stat -c '%s' "${1}") count=0