GNU/Linux >> Linux Esercitazione >  >> Linux

Differenza tra cp -r e cp -R (comando copia)

Mentre -R è posix ben definito, -r non è portatile!

Su Linux, nelle implementazioni GNU e BusyBox di cp , -r e -R sono equivalenti.

D'altra parte, come puoi leggere nella pagina di manuale POSIX di cp , -r comportamento è definito dall'implementazione .

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

-r minuscolo era un'opzione precedente, introdotta in 4.1BSD, che copiava semplicemente tutte le non directory come file. Cioè, se incontra un dispositivo o FIFO, lo apre, legge il contenuto e crea un file nella destinazione con il contenuto.

-R maiuscolo era un'opzione standardizzata (introdotta in BSD in 4.4BSD, sebbene le versioni precedenti lo avessero come sinonimo di -r ) che, incontrando un dispositivo, un FIFO o un altro file speciale, creerebbe un file speciale equivalente nella destinazione.

Molte implementazioni mantengono ancora questa distinzione, ma alcune (inclusa la versione GNU tipica di Linux) forniscono solo -R semantica, con -r come sinonimo.


La differenza è che uno usa una "R" minuscola e l'altro usa una "R" maiuscola. Oltre a ciò, nessuna differenza. Stessa cosa se usi --recursive opzione lunga.


Linux
  1. Differenza tra "e" sulla riga di comando (bash)??

  2. Differenza tra Eot ed Eof?

  3. Differenza tra [0-9], [[:digit:]] e D?

  4. Differenza tra tubazioni ed espansione dei comandi?

  5. Qual è la differenza tra COPIA e AGGIUNGI in Dockerfiles?

Comprendere la differenza tra il comando sudo e su su Linux

Qual è la differenza tra Cat e Touch Command

Qual è la differenza tra il comando apt e apt-get?

Qual è la differenza tra i comandi kill e killall?

Differenza tra '{}' e {} nel comando find?

Differenza tra 'man ls' e 'ls --help'?