cp: -r or -R?

2026-09-30

A question like this recently came up again. I once tried to find an answer, but only posted it in some "forum" a decade ago, and I think it's worth saving this little bit of trivia from digital nirvana.

Nowadays, there's no difference between the two options in GNU coreutils. The current manual page says:

-R, -r, --recursive
    copy directories recursively

Was that always the case?

Let's look at the first commit in GNU coreutils (1992). In src/cp.c, we have this:

case 'r':
    flag_recursive = 1;
    flag_copy_as_regular = 1;
    break;

case 'R':
    flag_recursive = 1;
    flag_copy_as_regular = 0;
    break;