A continuación se encuentra información de man cp
.
NOMBRE
cp – copiar archivos
SINOPSIS
cp [-R [-H | -L | -P]] [-fi | -n] [-alpsvXx] archivo_origen
archivo_destino
cp [-R [-H | -L | -P]] [-fi | -n] [-alpsvXx]
archivo_origen
...
directorio_destino
DESCRIPCIÓN
En la primera forma de sinopsis, la utilidad cp copia el contenido del
archivo_origen
al archivo_destino
. En la segunda forma de sinopsis, se copia el contenido
de cada archivo_origen
nombre al directorio_destino
.
Los nombres de los archivos en sí no se cambian. Si cp detecta un intento de copiar un archivo en sí mismo, la copia fallará.
La pregunta del OP se refiere a cuál de las dos formas dadas arriba está siendo utilizada. Esto depende de si el directorio destino existe. La segunda forma requiere que el directorio destino exista. Al ingresar los siguientes comandos de la pregunta del OP, se utiliza la segunda forma.
cp -Rip dir1 dir2/
cp -Rip dir1/ dir2/
Al ingresar los siguientes comandos de la pregunta del OP, se utiliza la primera forma.
cp -Rip dir1 dir1-copy/
cp -Rip dir1/ dir1-copy/
Con ambos comandos anteriores, los resultados son los mismos. El directorio dir1
se duplica, donde dir1-copy
es el nombre del duplicado. El uso de /
después de dir1
es redundante.
Se puede comprobar que se está utilizando la primera forma añadiendo un archivo existente a cualquiera de los comandos. Por ejemplo, supongamos que existe un archivo llamado hi.txt
y se ingresa el siguiente comando. Dado que ahora hay dos archivos fuente, se debe utilizar la segunda forma.
cp -Rip dir1 hi.txt dir1-copy/
El resultado será el siguiente mensaje de error.
cp: dir1-copy is not a directory
Dado que ninguno de los comandos a continuación produce un mensaje de error, se debe haber utilizado la primera forma.
cp -Rip dir1 dir1-copy/
cp -Rip dir1/ dir1-copy/
En cuanto a la "pregunta estrechamente relacionada" del OP
La salida de man cp
hace la siguiente distinción involucrando el uso del carácter /
después de un nombre de directorio cuando se especifica la opción -R
.
-R Si archivo_origen
designa un directorio, cp copia el directorio y
todo el subárbol conectado en ese punto. Si el archivo_origen
termina
en un /
, se copian los contenidos del directorio en lugar del
directorio en sí....
No se hacen tales distinciones en la salida de man mv
. Con el comando mv
, el /
al final no tiene un significado especial.