GNU/Linux >> Tutoriales Linux >  >> Linux

Diferencia entre cp -r y cp -R (comando de copia)

Mientras -R es posix bien definido, -r ¡no es portátil!

En Linux, en las implementaciones GNU y BusyBox de cp , -r y -R son equivalentes.

Por otro lado, como se puede leer en la página del manual POSIX de cp , -r el comportamiento está definido por la implementación .

    * If  neither  the  -R  nor  -r  options were specified, cp shall take
      actions based on the type and contents of the file referenced by the
      symbolic link, and not by the symbolic link itself.

    * If the -R option was specified:

       * If  none  of  the  options  -H,  -L, nor -P were specified, it is
         unspecified which of -H, -L, or -P will be used as a default.

       * If the -H option was specified, cp shall take  actions based on
         the type and contents of the file referenced by any symbolic link
         specified as a source_file operand.

       * If the -L option was specified, cp shall take  actions based  on
         the type and contents of the file referenced by any symbolic link
         specified as a source_file operand or any symbolic links encoun-
         tered during traversal of a file hierarchy.

       * If  the  -P option was specified, cp shall copy any symbolic link
         specified as a source_file operand and any symbolic links encoun-
         tered  during traversal of a file hierarchy, and shall not follow
         any symbolic links.

    * If the -r option was  specified,  the  behavior  is implementation-
      defined.

Minúsculas -r era una opción más antigua, introducida en 4.1BSD, que simplemente copiaba todos los que no eran directorios como archivos. Es decir, si encuentra un dispositivo o FIFO, lo abre, lee el contenido y crea un archivo en el destino con el contenido.

Mayúsculas -R era una opción estandarizada (introducida en BSD en 4.4BSD, aunque versiones anteriores la tenían como sinónimo de -r ) que, al encontrar un dispositivo, FIFO u otro archivo especial, crearía un archivo especial equivalente en el destino.

Muchas implementaciones aún mantienen esta distinción, pero algunas (incluida la versión GNU típica de Linux) solo proporcionan el -R semántica, con -r como sinónimo.


La diferencia es que uno usa una "R" minúscula y el otro usa una "R" mayúscula. Más allá de eso, no hay diferencia. Lo mismo si usas el --recursive opción larga.


Linux
  1. ¿La diferencia entre [[ $a ==Z* ]] y [ $a ==Z* ]?

  2. ¿Diferencia entre tubería y expansión de comando?

  3. ¿Diferencia entre Snat y Masquerade?

  4. ¿Cuál es la diferencia entre COPIAR y AÑADIR en Dockerfiles?

  5. ¿Diferencia entre '{}' y {} en el comando de búsqueda?

Comprender la diferencia entre los comandos sudo y su en Linux

¿Cuál es la diferencia entre el comando Cat y Touch?

¿Cuál es la diferencia entre el comando apt y apt-get?

¿Cuál es la diferencia entre los comandos kill y killall?

¿Cuál es la diferencia entre &> y >&en bash?

¿Diferencia entre 'man ls' y 'ls --help'?