Zatímco -R
je posix dobře definovaný, -r
není přenosný!
Na Linuxu v implementacích GNU a BusyBox cp
, -r
a -R
jsou ekvivalentní.
Na druhé straně, jak si můžete přečíst v manuálové stránce POSIX cp
, -r
chování je definováno implementací .
* 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
malými písmeny byla starší možnost, představená v 4.1BSD, která by jednoduše zkopírovala všechny neadresáře jako soubory. To znamená, že pokud narazí na zařízení nebo FIFO, otevře je, přečte obsah a v cíli vytvoří soubor s obsahem.
Velká písmena -R
byla standardizovaná volba (zavedená do BSD v 4.4BSD, ačkoli dřívější verze ji měly jako synonymum pro -r
), který by při setkání se zařízením, FIFO nebo jiným speciálním souborem vytvořil v cíli ekvivalentní speciální soubor.
Mnoho implementací stále udržuje tento rozdíl, ale některé (včetně verze GNU typické pro Linux) poskytují pouze -R
sémantika s -r
jako synonymum.
Rozdíl je v tom, že jeden používá malé „R“ a druhý používá velké „R“. Kromě toho žádný rozdíl. Totéž, pokud použijete --recursive
dlouhá možnost.