Cómo copiar un directorio y su contenido en Linux

Utilice el comando "cp" para copiar y pegar directorios completos de un lugar a otro

No importa qué sistema operativo esté ejecutando, copiar un archivo o una carpeta de una ubicación a otra es la tarea más básica que realiza a diario. En un día ajetreado en el trabajo, durante la asignación de un proyecto en la escuela o durante el desarrollo continuo de un proyecto, copiar archivos de la ubicación A a la ubicación B es inevitable.

La copia de archivos o carpetas generalmente se realiza mediante la GUI. Linux se encarga de su hábito de trabajar en la terminal al proporcionar una utilidad de línea de comandos que le permite copiar archivos o carpetas de una ubicación a otra. Utilizando el cp El comando con una variedad de opciones le da la libertad de copiar archivos y carpetas de múltiples formas.

Permítame guiarlo a través de este artículo donde aprenderá acerca de cp comando y las formas de copiar directorios junto con su contenido.

Opciones disponibles con cp mando

Estas son las opciones más comunes que se utilizan con cp comando en el contexto de copiar un directorio y todo su contenido.

OpcionesDescripción
-vmodo detallado (muestra el progreso)
-r / Rcopiar directorios de forma recursiva
-norteno sobrescriba un archivo o carpeta existente
-Ipreguntar antes de sobrescribir

Copiar un directorio de una ubicación a otra

Comencemos con el uso más básico de la cp mando. Usaremos este comando con la opción -r.

Utilizando el -r La opción asegura que las subcarpetas y archivos dentro del directorio que está copiando, también serán copiados.

Sintaxis:

cp -r [ubicación_origen] [ubicación_destino]

Ejemplo:

Tengo dos directorios dentro de mi directorio de trabajo actual llamados "proyecto" y "espacio de trabajo".

En este ejemplo, usaré el cp -r comando para copiar el directorio "proyecto" junto con todo su contenido a una nueva ubicación, es decir, "/ home / gaurav / workspace". Esto simplemente significa que estoy copiando el directorio llamado "proyecto" a un directorio llamado "espacio de trabajo".

Estos son los contenidos del directorio "proyecto". Utilizando el ls comando para mostrar su contenido.

gaurav @ ubuntu: ~ / project $ ls -al total 288 drwxr-xr-x 6 gaurav gaurav 4096 17 de septiembre 18:26. drwxr-xr-x 88 gaurav gaurav 266240 17 de septiembre 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 17 de septiembre 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096 17 de septiembre 18:25 dem2 drwxr-xr -x 2 gaurav gaurav 4096 17 de septiembre 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17 de septiembre 18:25 dem4 -rw-r - r-- 1 gaurav gaurav 24 17 de septiembre 18:26 temp.c gaurav @ ubuntu: ~ / proyecto $

Ahora, usando el cp -r comando podemos copiar el directorio "proyecto" a cualquier ubicación deseada.

gaurav @ ubuntu: ~ $ cp -r / inicio / gaurav / proyecto / inicio / gaurav / espacio de trabajo gaurav @ ubuntu: ~ $

Producción:

gaurav @ ubuntu: ~ / espacio de trabajo $ ls -al total 408 drwxrwxr-x 4 gaurav gaurav 4096 17 de septiembre 18:27. drwxr-xr-x 88 gaurav gaurav 266240 17 de septiembre 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 22 de marzo de 2018 .metadatos drwxr-xr-x 6 gaurav gaurav 4096 17 de septiembre 18:27 proyecto -rw-r - r - 1 gaurav gaurav 1535 16 de septiembre 17:13 source.c gaurav @ ubuntu: ~ / workspace $ 

En el resultado anterior, podemos ver que el directorio "proyecto" se copia desde la ubicación original a esta nueva ubicación "/ home / gaurav / workspace". Ahora, abramos el directorio "proyecto" y verifiquemos si todos los contenidos dentro de él también están copiados.

gaurav @ ubuntu: ~ $ cd ./workspace/project gaurav @ ubuntu: ~ / espacio de trabajo / proyecto $

Nota: He usado ./ aquí en lugar de entrar en la ruta completa. Simplemente significa que es la ruta de mi directorio de inicio y el espacio de trabajo se encuentra en mi directorio de inicio o de trabajo actual. Para obtener más aclaraciones sobre esto, puede consultar este artículo.

Producción:

gaurav @ ubuntu: ~ / espacio de trabajo / proyecto $ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 17 de septiembre 18:27. drwxrwxr-x 4 gaurav gaurav 4096 17 de septiembre 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 17 de septiembre 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 17 de septiembre 18:27 dem2 drwxr-xr-x 2 gaurav gaurav 4096 17 de septiembre 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17 de septiembre 18:27 dem4 -rw-r - r-- 1 gaurav gaurav 24 17 de septiembre 18:27 temp.c gaurav @ ubuntu: ~ / espacio de trabajo / proyecto $ 

A partir de este resultado, podemos concluir que todos los contenidos del directorio "proyecto" también se mueven a la nueva ubicación.

Copiar varios directorios de una ubicación a otra

Para copiar varios directorios, cp El comando se puede usar de la misma manera que se mencionó anteriormente. El único cambio aquí será que deberá ingresar las múltiples rutas de origen de los múltiples directorios que se copiarán.

Sintaxis:

cp -r [ruta_origen_1] [ruta_fuente_n] [ruta_destino]

Comprobemos este comando con un ejemplo.

Ejemplo:

gaurav @ ubuntu: ~ / espacio de trabajo $ cp -r ./snap ./project / home / gaurav / tomcat

Aquí, he copiado dos directorios "snap" y "project" de mi directorio de trabajo actual a una nueva ubicación "/ home / gaurav / tomcat".

Ahora verifiquemos si los directorios están copiados con su contenido en la nueva ubicación.

gaurav @ ubuntu: ~ / tomcat $ ls -al total 9316 drwxrwxr-x 5 gaurav gaurav 4096 19 de septiembre 12:16. drwxr-xr-x 88 gaurav gaurav 266240 19 de septiembre 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 19 de septiembre 12:16 proyecto drwxr-xr-x 7 gaurav gaurav 4096 19 de septiembre 12:16 complemento

Comprobando si también se copia el contenido de estos directorios.

gaurav @ ubuntu: ~ / tomcat / snap $ ls couchdb eclipse htop pycharm-community vim-editor gaurav @ ubuntu: ~ / tomcat / snap $ 
gaurav @ ubuntu: ~ / tomcat / proyecto $ ls dem1, dem2 dem3 dem4 temp.c gaurav @ ubuntu: ~ / tomcat / project $

Utilizando cp comando con modo detallado

Utilizando el cp comando con la opción -v habilita el modo detallado. Esta función muestra los archivos del terminal que se están copiando. El nombre del archivo o carpeta que se está copiando se muestra en su terminal.

Sintaxis:

cp -vr [directorio_origen] [ruta_ubicación_destino]

Ejemplo:

gaurav @ ubuntu: ~ $ cp -vr ./workspace/apache ./space

En este ejemplo, el directorio "apache" se copia en una nueva carpeta "espacio". He usado el -v opción con -r, para que también se copie todo el contenido del directorio de Apache.

Producción:

'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz 'gaurav @ ubuntu: ~ $

La salida muestra el directorio que se está copiando. Se puede realizar el mismo proceso en caso de copiar varios archivos.

Evite sobrescribir al usar cp mando

A veces, mientras usa el cp comando para copiar varios archivos o carpetas, puede terminar sobrescribiendo archivos que ya están copiados en la nueva ubicación. Para evitar esto, es aconsejable utilizar el -I opción con la cp mando. Esto le indicará antes de sobrescribir cualquier archivo o carpeta.

Sintaxis:

cp -ri [ruta_directorio_origen] [ruta_ubicación_destino]

Nota: Aquí, en la sintaxis que he usado -r opción también. Esto también copiará el contenido de los directorios. También comprobará si alguna de estas subcarpetas y archivos dentro del directorio se está sobrescribiendo.

Ejemplo:

gaurav @ ubuntu: ~ $ cp -ri ./workspace/snap ./tomcat cp: sobreescribir './tomcat/snap/pycharm-community/current'?

Aquí, intenté copiar un directorio llamado "snap" en una nueva ubicación. Pero el nombre del directorio "snap" ya existe en la nueva ubicación. Por lo tanto, el terminal me preguntará antes de sobrescribir el directorio snap existente.

Puede escribir "' o 'No"Como respuesta a este mensaje.

En caso de que no utilice el -I opción, el nuevo directorio sobrescribirá el directorio existente.

Omita la sobrescritura de archivos y directorios con cp mando

Podemos usar el -norte opción para indicar directamente al terminal que nunca sobrescriba y simplemente omitir archivos y directorios similares mientras usa el cp mando.

Sintaxis:

cp -nr [ruta_directorio_origen] [ruta_ubicación_destino]

Con este comando, puede estar seguro de que sus archivos y carpetas no se sobrescribirán.

Ejemplo:

gaurav @ ubuntu: ~ $ cp -ri ./workspace/snap ./tomcat gaurav @ ubuntu: ~ $

Aquí, el directorio "snap" ya existe en la ubicación de destino. Por lo tanto, usando -norte La opción asegurará no sobrescribir este directorio.

a diferencia de -I opción, aquí no se le preguntará sobre la sobrescritura.

Conclusión

Utilizando el cp El comando para copiar directorios y su contenido en Linux es un proceso sencillo. Para aprender más sobre el cp comando con otras opciones disponibles, puede consultar la página del manual escribiendo hombre cp en su terminal Linux.