Sedangkan -R
adalah posix yang terdefinisi dengan baik, -r
tidak portabel!
Di Linux, dalam implementasi GNU dan BusyBox dari cp
, -r
dan -R
setara.
Di sisi lain, seperti yang dapat Anda baca di halaman manual POSIX dari cp
, -r
perilaku ditentukan implementasi .
* 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.
Huruf kecil -r
adalah opsi yang lebih lama, diperkenalkan di 4.1BSD, yang hanya akan menyalin semua non-direktori sebagai file. Artinya, jika menemukan perangkat atau FIFO, itu akan membukanya, membaca isinya, dan membuat file di tempat tujuan dengan isinya.
Huruf besar -R
adalah opsi standar (diperkenalkan ke BSD di 4.4BSD, meskipun versi sebelumnya memilikinya sebagai sinonim untuk -r
) yang akan, saat menemukan perangkat, FIFO, atau file khusus lainnya, membuat file khusus yang setara di tempat tujuan.
Banyak implementasi masih mempertahankan perbedaan ini, tetapi beberapa (termasuk versi GNU khas Linux) hanya menyediakan -R
semantik, dengan -r
sebagai sinonim.
Perbedaannya adalah yang satu menggunakan huruf kecil "R" dan yang lainnya menggunakan huruf kapital "R". Di luar itu, tidak ada perbedaan. Hal yang sama jika Anda menggunakan --recursive
opsi panjang.