cp significa copia . Este comando se utiliza para copiar archivos o grupos de archivos o directorios. Crea una imagen exacta de un archivo en un disco con un nombre de archivo diferente. El comando cp requiere al menos dos nombres de archivo en sus argumentos.
Sintaxis:
cp [OPTION] Source Destination cp [OPTION] Source Directory cp [OPTION] Source-1 Source-2 Source-3 Source-n Directory First and second syntax is used to copy Source file to Destination file or Directory. Third syntax is used to copy multiple Sources(files) to Directory.
El comando cp funciona en tres modos principales de operación y estas operaciones dependen del número y tipo de argumentos pasados en el comando cp:
- Dos nombres de archivo: si el comando contiene dos nombres de archivo, entonces copia el contenido del primer archivo al segundo archivo . Si el segundo archivo no existe, primero crea uno y el contenido se copia en él. Pero si existiera, simplemente se sobrescribirá sin previo aviso. Así que tenga cuidado cuando elija el nombre del archivo de destino.
cp Src_file Dest_file
Supongamos que hay un directorio llamado geeksforgeeks que tiene un archivo de texto a.txt .
Ejemplo:$ls a.txt $cp a.txt b.txt $ls a.txt b.txt
- Uno o más argumentos: si el comando tiene uno o más argumentos, especificando los nombres de los archivos y siguiendo esos argumentos, un argumento que especifica el nombre del directorio, este comando copia cada archivo de origen en el directorio de destino con el mismo nombre, creado si no existe pero si ya existido entonces será sobreescrito, así que ten cuidado!!.
cp Src_file1 Src_file2 Src_file3 Dest_directory
Supongamos que hay un directorio llamado geeksforgeeks que tiene un archivo de texto a.txt, b.txt y un directorio de nombre new en el que vamos a copiar todos los archivos.
Ejemplo:$ls a.txt b.txt new Initially new is empty $ls new $cp a.txt b.txt new $ls new a.txt b.txt
Nota: Para este caso, el último argumento debe ser un nombre de directorio . Para que el comando anterior funcione, Dest_directory debe existir porque el comando cp no lo creará.
- Dos nombres de directorio: si el comando contiene dos nombres de directorio, cp copia todos los archivos del directorio de origen en el directorio de destino, creando los archivos o directorios necesarios. Este modo de operación requiere una opción adicional, típicamente R , para indicar la copia recursiva de directorios.
cp -R Src_directory Dest_directory
En el comando anterior, el comportamiento de cp depende de si Dest_directory existe o no. Si Dest_directory no existe, cp lo crea y copia el contenido de Src_directory recursivamente tal como está. Pero si Dest_directory existe, la copia de Src_directory se convierte en un subdirectorio en Dest_directory .
Opciones:
Hay muchas opciones del comando cp , aquí discutiremos algunas de las opciones útiles:
Supongamos que un directorio llamado geeksforgeeks contiene dos archivos que tienen algún contenido llamado a.txt y b.txt . Este escenario es útil para comprender las siguientes opciones.
$ls geeksforgeeks a.txt b.txt $cat a.txt GFG $cat b.txt GeeksforGeeks
1. -i (interactivo): i significa copia interactiva. Con esta opción, el sistema primero advierte al usuario antes de sobrescribir el archivo de destino. cp solicita una respuesta, si presiona y sobrescribe el archivo y con cualquier otra opción lo deja sin copiar.
$cp -i a.txt b.txt cp: overwrite 'b.txt'? y $cat b.txt GFG
2. -b(copia de seguridad): con esta opción, el comando cp crea la copia de seguridad del archivo de destino en la misma carpeta con un nombre diferente y en un formato diferente.
$ls a.txt b.txt $cp -b a.txt b.txt $ls a.txt b.txt b.txt~
3. -f (forzar): si el sistema no puede abrir el archivo de destino para la operación de escritura porque el usuario no tiene permiso de escritura para este archivo, al usar la opción -f con el comando cp , el archivo de destino se elimina primero y luego se copia. del contenido se realiza desde el archivo de origen hasta el de destino.
$ls -l b.txt -r-xr-xr-x+ 1 User User 3 Nov 24 08:45 b.txt User, group and others doesn't have writing permission. Without -f option, command not executed $cp a.txt b.txt cp: cannot create regular file 'b.txt': Permission denied With -f option, command executed successfully $cp -f a.txt b.txt
4. -r o -R: copiando la estructura del directorio. Con esta opción , el comando cp muestra su comportamiento recursivo al copiar toda la estructura de directorios de forma recursiva.
Supongamos que queremos copiar el directorio geeksforgeeks que contiene muchos archivos, directorios en el directorio gfg (no existe).
$ls geeksforgeeks/ a.txt b.txt b.txt~ Folder1 Folder2 Without -r option, error $cp geeksforgeeks gfg cp: -r not specified; omitting directory 'geeksforgeeks' With -r, execute successfully $cp -r geeksforgeeks gfg $ls gfg/ a.txt b.txt b.txt~ Folder1 Folder2
5. -p(preservar): Con la opción -p cp conserva las siguientes características de cada archivo fuente en el archivo de destino correspondiente: la hora de la última modificación de datos y la hora del último acceso, la propiedad (solo si tiene permisos para hacer esto) y los bits de permiso del archivo.
Nota: Para la conservación de las características, debe ser el usuario raíz del sistema, de lo contrario, las características cambian.
$ls -l a.txt -rwxr-xr-x+ 1 User User 3 Nov 24 08:13 a.txt $cp -p a.txt c.txt $ls -l c.txt -rwxr-xr-x+ 1 User User 3 Nov 24 08:13 c.txt
Como podemos ver arriba, tanto a.txt como c.txt (creado copiando) tienen las mismas características.
Ejemplos:
Copiar usando * comodín: El comodín estrella representa cualquier cosa, es decir, todos los archivos y directorios. Supongamos que tenemos muchos documentos de texto en un directorio y queremos copiarlos en otro directorio, toma mucho tiempo si copiamos archivos 1 por 1 o el comando se vuelve demasiado largo si especificamos todos estos nombres de archivo como argumento, pero usando * comodín se vuelve simple.
Initially Folder1 is empty $ls a.txt b.txt c.txt d.txt e.txt Folder1 $cp *.txt Folder1 $ls Folder1 a.txt b.txt c.txt d.txt e.txt
Referencias:
Wikipedia
Publicación traducida automáticamente
Artículo escrito por AKASH GUPTA 6 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA