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 recibiste 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 comandos 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í.
Por ejemplo, si 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 directorio_no_existente fuera una réplica de directorio_fuente.
[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.
Por ejemplo, si 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.
Preservar los atributos del archivo original
Un último consejo para acortar las cosas. Si usa la opción -a junto con la opción -r, se conservará la información del archivo original, como los permisos de archivo, las marcas de tiempo del archivo, etc. Se archivará el directorio en la nueva ubicación en lugar de crearlo de nuevo.
Eso es
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.