GNU/Linux >> Tutoriels Linux >  >> Linux

Différence entre cp -r et cp -R (commande de copie)

Alors que -R est posix bien défini, -r n'est pas portable !

Sous Linux, dans les implémentations GNU et BusyBox de cp , -r et -R sont équivalents.

D'autre part, comme vous pouvez le lire dans la page de manuel POSIX de cp , -r le comportement est défini par la mise en œuvre .

    * 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.

Minuscule -r était une option plus ancienne, introduite dans 4.1BSD, qui copierait simplement tous les non-répertoires sous forme de fichiers. Autrement dit, s'il rencontrait un périphérique ou un FIFO, il l'ouvrirait, lirait le contenu et créerait un fichier à la destination avec le contenu.

Majuscule -R était une option standardisée (introduite dans BSD dans 4.4BSD, même si les versions antérieures l'avaient comme synonyme de -r ) qui, en rencontrant un périphérique, une FIFO ou un autre fichier spécial, créerait un fichier spécial équivalent à la destination.

De nombreuses implémentations maintiennent toujours cette distinction, mais certaines (y compris la version GNU typique de Linux) ne fournissent que le -R sémantique, avec -r comme synonyme.


La différence est que l'un utilise un "R" minuscule et l'autre utilise un "R" majuscule. Au-delà, aucune différence. Même chose si vous utilisez le --recursive option longue.


Linux
  1. Différence entre " et " sur la ligne de commande (bash) ? ?

  2. Différence entre Eot et Eof?

  3. Différence entre [0-9], [[:digit:]] et D ?

  4. Différence entre snat et mascarade?

  5. Quelle est la différence entre COPY et ADD dans Dockerfiles ?

Comprendre la différence entre les commandes sudo et su sous Linux

Quelle est la différence entre le chat et la commande tactile

Quelle est la différence entre la commande apt et apt-get ?

Quelle est la différence entre les commandes kill et killall ?

Différence entre 'man ls' et 'ls --help' ?

différence copier le dossier de contenu entre /. et /* sous linux