Me pregunto por qué este comando exacto en dockerfile copia todos los archivos del directorio de origen en el destino, en lugar de copiar solo el directorio completo.
holms
44
Creo que el '/' al final marca la diferencia y eso podría explicar su experiencia. Si la fuente incluye la barra diagonal final, copiará lo que está en el directorio solamente. Si no incluye la barra diagonal final, también copiará el directorio y luego el contenido dentro de él. Mi memoria es que este comportamiento varía un poco por comando y tal vez por evento. Aquí hay una referencia con más información.
OllieBrown
23
Diría que si no desea incluir la fuente y quiere asegurarse de que todo esté copiado (enlaces simbólicos, archivos ocultos) sin copiar la carpeta principal de origen, use -ra source /. destino. Esto asegurará que el contenido de la carpeta se copie, pero no la carpeta principal en sí, que a veces es útil. Y la diferencia es el /.
muni764
Esto también parece funcionar correctamente si los directorios que se copiarán son enlaces simbólicos, que fue mi caso de uso.
Gdalya
3
Tenga en cuenta la importancia de "Slash dot" en su fuente en cp -r src/. destSé que se menciona, pero todavía parece que lo extraño cada vez.
bbeecher
368
Estás buscando el cpcomando. Debe cambiar los directorios para estar fuera del directorio que está intentando copiar.
Si se llama al directorio que está copiando dir1y desea copiarlo a su /home/Picturescarpeta:
cp -r dir1/ ~/Pictures/
Linux distingue entre mayúsculas y minúsculas y también necesita /después de cada directorio para saber que no es un archivo. ~es un carácter especial en el terminal que evalúa automáticamente el directorio de inicio del usuario actual. Si necesita saber en qué directorio se encuentra, use el comando pwd.
Cuando no sabe cómo usar un comando de Linux, hay una página de manual a la que puede consultar escribiendo:
man [insert command here]
en un indicador de terminal.
Además, para completar automáticamente las rutas de archivo largas al escribir en el terminal, puede presionar Tabdespués de haber comenzado a escribir la ruta y se le presentarán opciones o insertará la parte restante de la ruta.
Para aclarar más, la -ropción en esto copiará los directorios de forma recursiva.
TVann
55
¿El OP no especificó que estaba usando el cp -rcomando, pero que no estaba funcionando correctamente?
MD XF
44
La razón por la que incluí la información sobre páginas de manual es que estos indicadores pueden depender de la distribución. Sin embargo, en su mayor parte, parece ser -r, --recursivey -Rson equivalentes. También dará trampas comunes, etc., lo cual es bueno.
Alex W
66
Si desea copiar de forma portátil el DIRECTORIO y no solo su contenido, deje el guión final en la carpeta de origen, es decir. cp -r dir1 ~/Pictures/
Respuestas:
La opción que estás buscando es
-R
.destination
no existe, se creará.-R
significacopy directories recursively
. También puede usar-r
ya que no distingue entre mayúsculas y minúsculas./
según el comentario de @ muni764 .fuente
cp -r src/. dest
Sé que se menciona, pero todavía parece que lo extraño cada vez.Estás buscando el
cp
comando. Debe cambiar los directorios para estar fuera del directorio que está intentando copiar.Si se llama al directorio que está copiando
dir1
y desea copiarlo a su/home/Pictures
carpeta:Linux distingue entre mayúsculas y minúsculas y también necesita
/
después de cada directorio para saber que no es un archivo.~
es un carácter especial en el terminal que evalúa automáticamente el directorio de inicio del usuario actual. Si necesita saber en qué directorio se encuentra, use el comandopwd
.Cuando no sabe cómo usar un comando de Linux, hay una página de manual a la que puede consultar escribiendo:
en un indicador de terminal.
Además, para completar automáticamente las rutas de archivo largas al escribir en el terminal, puede presionar Tabdespués de haber comenzado a escribir la ruta y se le presentarán opciones o insertará la parte restante de la ruta.
fuente
-r
opción en esto copiará los directorios de forma recursiva.cp -r
comando, pero que no estaba funcionando correctamente?-r
,--recursive
y-R
son equivalentes. También dará trampas comunes, etc., lo cual es bueno.cp -r dir1 ~/Pictures/
Utilizar:
fuente
demo1_copy
aún no existía$ ls demo1 demo3 README.md $ cp -R demo1/ demo1_copy/