fix #8698: cp(src,dst) should truncate dst if it already exists

See #8698.