Cómo copiar un directorio en la línea de comandos de Linux [Beginner’s Tip]

Si es nuevo en la línea de comandos de Linux, probablemente tenga esta pregunta en mente: ¿Cómo copio un directorio y los archivos que contiene a otro directorio en la línea de comandos de Linux?

Aquí se explica cómo copiar un directorio en Linux:

                      
                        cp -r source_directory destination_directory
                      
                    

Probablemente ya sepa que puede usar el comando cp para copiar archivos en Linux. ¿Sabe que puede usar el mismo comando cp para copiar una carpeta en la línea de comandos de Linux?

¡Ja! Ya lo intentaste y tal vez obtuviste este error:

                      
                        cp: -r not specified; omitting directory 'test_dir'
                      
                    

Déjame mostrarte una o dos cosas sobre la copia de directorios en Linux.

Copiar directorio en la línea de comando de Linux

Definitivamente puede usar el mismo comando cp pero con la opción recursiva -r para copiar una carpeta con su contenido a otra carpeta. El error mencionado anteriormente también sugiere que te perdiste la opción -r.

Todo lo que tienes que hacer es usar el comando de esta manera:

                      
                        cp -r source_directory destination_directory
                      
                    

Y ahora, si usa el comando ls en el directorio de destino, debería tener todo el directorio de origen dentro.

La opción -r permite la opción recursiva. Esto significa que todo el contenido del directorio, incluidos sus propios subdirectorios, todo en el directorio se copiará en el destino.

Algunas cosas a tener en cuenta sobre la copia de directorios en Linux

Aquí hay un par de cosas a tener en cuenta y consejos sobre cómo copiar carpetas.

¿El directorio de destino no existe? será creado

Si el directorio de destino no existe (pero existe la ruta), se creará hasta un nivel (se explica en la siguiente sección). Sin embargo, ahora copiará el contenido del directorio de origen, no el directorio de origen en sí.

Para exampleSi haces esto:

                      
                        cp -r source_directory non_existing_directory
                      
                    

El directorio_no_existente se creará con el contenido del directorio_fuente pero no tendrá el directorio_fuente dentro. Solo se copiarán los archivos de source_directory. Sería como si non_existing_directory fuera una réplica de source_directory.

                      
                        [email protected]:~$ ls
test_dir
[email protected]:~$ cp -r test_dir new_dir
[email protected]:~$ tree
 .
 ├── new_dir
 │   ├── c.xyz
 │   ├── myzip1.zip
 │   └── myzip2.zip
 └── test_dir
     ├── c.xyz
     ├── myzip1.zip
     └── myzip2.zip
 2 directories, 6 files
                      
                    

No se puede crear un directorio anidado mientras se copia

No puede usar el comando anterior para crear una estructura de directorio anidada.

Para examplesi intenta usar cp -r source_dir dir1/dir2/dir3 pero dir2 y dir3 no existen, no creará la estructura de directorios anidados y el comando falla.

Conservar los atributos del archivo original

Un último consejo para acortar las cosas. Si usa la opción -a junto con la opción -r, conservará la información del archivo original, como los permisos del archivo, las marcas de tiempo del archivo, etc. Archivará el directorio en la nueva ubicación en lugar de crearlo de nuevo.

Eso es todo

Esta cantidad de información debería ser suficiente para que sepas cómo copiar un directorio en Linux. Si tiene preguntas o sugerencias, no dude en dejar un comentario.

Related Posts