Sous OS X et dans les anciennes versions de FreeBSD, -rvous -R -L --copy-contentsfaites comme dans Coreutils, ou suivez les liens symboliques et lisez le contenu des fichiers spéciaux et des FIFO.
mkdir a;touch b;ln -s $PWD/b a;cp -r a cremplace le lien symbolique par le fichier cible sous OS X, mkdir a;mkfifo a/b;cp -r a cest bloqué lors de la lecture de la FIFO et mkdir a;ln -s /dev/zero a;cp -r a bcommence à se remplir b/zerode zéros.
Depuis la cppage de manuel sous OS X et les anciennes versions de FreeBSD:
Historic versions of the cp utility had a -r option. This implementation
supports that option; however, its use is strongly discouraged, as it
does not correctly copy special files, symbolic links, or fifo's.
Dans les nouvelles versions de FreeBSD -rest équivalent à -RL:
Historic versions of the cp utility had a -r option. This implementation
supports that option, however, its behavior is different from historical
FreeBSD behavior. Use of this option is strongly discouraged as the
behavior is implementation-dependent. In FreeBSD, -r is a synonym for
-RL and works the same unless modified by other flags. Historical imple-
mentations of -r differ as they copy special files as normal files while
recreating a hierarchy.
http://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html :
--copy-contents
Si vous copiez de manière récursive, copiez le contenu de tous les fichiers spéciaux (par exemple, des fichiers FIFO et des fichiers de périphérique) comme s'il s'agissait de fichiers normaux. Cela signifie essayer de lire les données dans chaque fichier source et de les écrire dans la destination. C'est généralement une erreur d'utiliser cette option, car elle a normalement des effets indésirables sur des fichiers spéciaux tels que les FIFO et ceux généralement présents dans le /devrépertoire. Dans la plupart des cas, cp -R --copy-contentsbloquera indéfiniment en essayant de lire à partir de fichiers FIFO et spéciaux /dev/console, et remplira votre disque de destination si vous l'utilisez pour copier /dev/zero. Cette option n'a d'effet que sur la copie récursive et n'affecte pas la copie de liens symboliques.