GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unterschied zwischen cp -r und cp -R (Kopierbefehl)

Während -R ist Posix wohldefiniert, -r ist nicht tragbar!

Unter Linux in den GNU- und BusyBox-Implementierungen von cp , -r und -R sind gleichwertig.

Auf der anderen Seite, wie Sie in der POSIX-Manpage von cp nachlesen können , -r Verhalten ist implementierungsdefiniert .

    * 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 in Kleinbuchstaben war eine ältere Option, eingeführt in 4.1BSD, die einfach alle Nicht-Verzeichnisse als Dateien kopieren würde. Das heißt, wenn es auf ein Gerät oder einen FIFO stieß, würde es es öffnen, den Inhalt lesen und am Ziel eine Datei mit dem Inhalt erstellen.

-R in Großbuchstaben war eine standardisierte Option (in BSD in 4.4BSD eingeführt, obwohl frühere Versionen sie als Synonym zu -r hatten ), die beim Auffinden eines Geräts, FIFOs oder einer anderen speziellen Datei eine äquivalente spezielle Datei am Ziel erstellen würde.

Viele Implementierungen behalten diese Unterscheidung noch bei, aber einige (einschließlich der für Linux typischen GNU-Version) stellen nur den -R bereit Semantik, mit -r als Synonym.


Der Unterschied besteht darin, dass das eine ein kleines „R“ und das andere ein großes „R“ verwendet. Darüber hinaus kein Unterschied. Dasselbe gilt, wenn Sie den --recursive verwenden lange Option.


Linux
  1. Unterschied zwischen ' und ' in der Befehlszeile (bash)??

  2. Was ist der Unterschied zwischen dem Befehl „locate“ und „find“ in Linux?

  3. Linux-Unterschied zwischen sudo crontab -e und nur crontab -e

  4. Unterschied zwischen 'man ls' und 'ls --help'?

  5. Unterschied kopieren Inhaltsordner zwischen /. und /* unter Linux

Verstehen des Unterschieds zwischen dem Befehl sudo und su unter Linux

Was ist der Unterschied zwischen Cat und Touch Command?

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Der Unterschied zwischen [[ $a ==Z* ]] und [ $a ==Z* ]?

Unterschied zwischen Piping und Befehlserweiterung?

Was ist der Unterschied zwischen Kill- und Killall-Befehlen?