When files are being copied, they can hit the following loop: while (max_n_read) { ... // return true if file finishes copying // return false if error occurs // copy some file // deduct bytes copied from max_n_read ... } return true; If max_n_read reaches 0, the copy does not return a warning or a failure but instead returns that the copy completed successfully. I believe when copying files as large as these, if the maximum transfer were to be reached then the copy should not return false (as this will delete the failed destination file), but instead produce a warning and return true. I have attached a patch against the git master. Please review and consider it's inclusion. I apologise if there is an issue with this report as it is my first time submitting a patch to coreutils. Thanks, Adam Shore