En sistemas operativos tipo Unix, el comando cp hace copias de archivos y directorios.
Este documento describe la versión GNU / Linux de cp.
Descripción
La forma general del comando es cp source destination, por ejemplo:
cp myfile.txt myfilecopy.txt
Al igual que muchos comandos principales de Linux, si el comando cp es exitoso, por defecto, no se muestra ningún resultado. Para ver la salida cuando se copian los archivos, use la opción -v (detallado).
Por defecto, cp sobrescribirá los archivos sin preguntar. Si el nombre del archivo de destino ya existe, sus datos serán destruidos. Si desea que se le solicite confirmación antes de que se sobrescriban los archivos, use la opción -i (interactiva).
Sintaxis
cp [opción] ... [-T] destino de origen
cp [opción] ... fuente ... directorio
cp [opción] ... -t fuente del directorio ...
cp --help
cp --version
-a, – archivo | Igual que -dR –preserve = ALL. Al realizar la copia, intente preservar la mayor cantidad posible de la estructura del archivo original, los atributos y los metadatos asociados. Estos metadatos incluyen datos de contexto de seguridad si está ejecutando SELinux. | ||||||||||||||
–atributos solamente | No copie los datos del archivo, solo cree un archivo con los mismos atributos. Si el archivo de destino ya existe, no modifique su contenido. Puede controlar exactamente qué atributos se copian con la opción –preserve. | ||||||||||||||
–backup [= control] | Haga una copia de seguridad de cada archivo de destino existente que, de lo contrario, se sobrescribiría o eliminaría. El parámetro de control especifica qué método de control de versión usar; vea el control de versiones para más detalles. Como un caso especial, cp –force –backup hará una copia de seguridad de la fuente cuando la fuente y el destino son el mismo archivo regular. | ||||||||||||||
-b | Como –backup, pero no acepta un argumento de control; siempre se usa el método de control predeterminado. | ||||||||||||||
–copias-contenidos | Al operar de forma recursiva, copie el contenido de archivos especiales, como FIFO y dispositivos que se encuentran en / dev. Por lo general, no desea utilizar esta opción, ya que puede tener resultados no deseados, como colgar para siempre o llenar todo el disco. Sin embargo, esta opción está disponible para casos especiales de uso experto. | ||||||||||||||
-d | Copie los enlaces simbólicos, en lugar de los archivos a los que se refieren, y conserve los enlaces duros entre los archivos de origen en las copias. Igual que "–no-dereference –preserve = links". | ||||||||||||||
-f, – fuerza | Si no se puede abrir un archivo de destino existente, elimínelo e intente nuevamente. Esta opción no tiene efecto si se usa la opción -n / – no-clobber. Sin embargo, se aplica independientemente de -i / – interactivo; ninguna de las opciones cancela el efecto de la otra. | ||||||||||||||
-i, – interactivo | Preguntar antes de sobrescribir (anula una opción -n anterior). | ||||||||||||||
-H | Siga los enlaces simbólicos especificados en la línea de comando, pero conserve los enlaces descubiertos. Si uno de los argumentos en la línea de comando es un enlace simbólico, copie el archivo referenciado, no el enlace en sí. Sin embargo, si se descubre un enlace simbólico durante el recorrido recursivo, se copiará como un enlace simbólico, no como un archivo normal. | ||||||||||||||
-l, – enlace | Cree enlaces duros a archivos en lugar de copiarlos. | ||||||||||||||
-L, – desreferencia | Siempre siga los enlaces simbólicos en la fuente; si la fuente es un enlace simbólico, copie el archivo vinculado en lugar del enlace simbólico en sí. Cuando se especifica esta opción, cp no puede crear enlaces simbólicos en las copias de destino. | ||||||||||||||
-n, – no-clobber | No sobrescriba un archivo existente. Si -i / – interactive se especificó previamente, esta opción lo anula. Esta opción no se puede especificar con -b / – copia de seguridad, ya que las copias de seguridad solo se crean cuando se ha sobrescrito un archivo. | ||||||||||||||
-P, – sin desreferencia | Nunca siga enlaces simbólicos en la fuente; copiar enlaces simbólicos como enlaces simbólicos. Sin embargo, los enlaces simbólicos existentes encontrados en el destino aún pueden seguirse. | ||||||||||||||
-p | Igual que –preserve = mode, propiedad, marcas de tiempo. | ||||||||||||||
–preserve = [attr_list] | Preserve los atributos especificados, separados por una coma. Los atributos son:
Si no se especifica, el valor predeterminado de attr_list es "modo, propiedad, marcas de tiempo". |
||||||||||||||
–no-preserve = attr_list | No conserve los atributos especificados. | ||||||||||||||
– padres | Cree los directorios principales que faltan en el destino, si es necesario, al copiar en el directorio de destino, de acuerdo con el nombre de ruta especificado en la fuente. Por ejemplo, "cp –parents dir2 / dir3 / file dir1" crea el archivo de destino "dir1 / dir2 / dir3 / file ", incluso si dir2 y dir3 no existen actualmente en dir1. | ||||||||||||||
-R, -r, – recursivo | Copie directorios de forma recursiva. | ||||||||||||||
–reflink = [cuando] | Realice un clon optimizado de CoW ("copiar en escritura"), si el sistema de archivos de destino lo admite. La copia resultante compartirá los mismos bytes en el disco que el archivo original, hasta que se modifique la copia. Tenga en cuenta que esto significa que si los bytes de origen están dañados, el destino compartirá los datos dañados. El parámetro cuándo define qué sucederá si el sistema de archivos de destino no admite la copia en escritura. Si siempre es (el valor predeterminado), la copia fallará. Si es automático, la copia continuará, utilizando el comportamiento de copia estándar. | ||||||||||||||
–remove-destination | Elimine cada archivo de destino existente antes de intentar abrirlo (contraste con la opción –force, que solo elimina el destino después de un intento fallido de abrir). | ||||||||||||||
–sparse = cuando | Controle la creación de archivos dispersos. Un archivo disperso contiene "agujeros", donde un agujero es una secuencia de cero bytes que no ocupa espacio físico en el disco. Cuando se lee el archivo, los agujeros se leen como ceros. Esto puede ahorrar espacio en disco ya que muchos archivos contienen largas secuencias de ceros. Por defecto, cp detecta archivos dispersos y también crea archivos de destino dispersos. El parámetro when define qué debe hacer cp cuando se detecta que un archivo fuente es disperso:
|
||||||||||||||
– strip-trailing-slashes | Elimine las barras diagonales finales de cada argumento de origen. | ||||||||||||||
-s, – enlace simbólico | Haga enlaces simbólicos en lugar de copiar los archivos ellos mismos. Todos los archivos de origen deben ser nombres de ruta absolutos que comiencen con una barra diagonal, a menos que los archivos de destino estén en el directorio actual. | ||||||||||||||
-S, – sufijo = sufijo | Anule el sufijo de copia de seguridad habitual. | ||||||||||||||
-t, – directorio-destino = directorio | Copie todos los argumentos de origen en el directorio | ||||||||||||||
-T, – directorio-no-objetivo | Tratar el destino como un archivo normal. | ||||||||||||||
-u, – actualizar | Copie solo cuando el archivo de origen sea más nuevo que el archivo de destino o cuando falte el archivo de destino. | ||||||||||||||
-v, – detallado | Modo detallado; explica lo que se está haciendo. | ||||||||||||||
-x, – sistema de un archivo | Solo opere en el sistema de archivos donde se ejecutó el comando. Si cp intenta cruzar el límite a otro sistema de archivos, se omitirán esos archivos. Esto incluye unidades en red, otra partición: cualquier archivo que resida en un sistema de archivos con un punto de montaje diferente. El directorio que representa el punto de montaje en sí se copiará, pero no se recorrerá. Si se especifica -v, verá exactamente qué archivos han sido omitido | ||||||||||||||
–ayuda | Muestre un mensaje de ayuda y salga. | ||||||||||||||
–versión | Salida de información de versión y salida. |
Por defecto, los archivos fuente dispersos son detectados por una heurística cruda y el archivo de destino correspondiente también se dispersa. Ese es el comportamiento seleccionado por –sparse = auto. Especifique –sparse = siempre para crear un archivo de destino disperso siempre que el archivo fuente contenga una secuencia suficientemente larga de cero bytes. Use –sparse = nunca para inhibir la creación de archivos dispersos.
Cuando se especifica –reflink [= always], cp realiza una copia ligera, donde los bloques de datos se copian solo cuando se modifican. Si esto no es posible, la copia falla; o, si se especifica –reflink = auto, cp recurre a una operación de copia estándar.
Control de versiones
Cuando se utiliza -b / – backup, el sufijo de copia de seguridad es '~', a menos que se configure con –suffix o SIMPLE_BACKUP_SUFFIX. El método de control de versión se puede seleccionar mediante la opción –backup = control o mediante la variable de entorno VERSION_CONTROL. Los posibles valores de control o VERSION_CONTROL son:
ninguno, fuera | Nunca haga copias de seguridad (incluso si se proporciona una copia de seguridad). |
numerado, t | Hacer copias de seguridad numeradas. |
existente, nulo | Numerado si existen copias de seguridad numeradas, de lo contrario, simple. |
simple, nunca | Haga siempre copias de seguridad simples. |
Como caso especial, cp realiza una copia de seguridad de la fuente cuando se dan las opciones de fuerza y copia de seguridad y la fuente y el destino tienen el mismo nombre para un archivo regular existente.
Ejemplos
Supongamos que tiene un archivo llamado picture.jpg en su directorio de trabajo y desea hacer una copia llamada picture-02.jpg. Ejecutarías el comando:
cp picture.jpg picture-02.jpg
… y el archivo se copiará. Aquí, picture.jpg es la fuente de la operación de copia, y picture-02.jpg es el destino. Ambos archivos ahora existen en su directorio de trabajo.
Los archivos de origen y destino también pueden residir en diferentes directorios. Por ejemplo,
cp /home/chuck/pictures/picture.jpg /home/chuck/backup/picture.jpg
… hará una copia del archivo /home/chuck/pictures/picture.jpg en el directorio / home / chuck / backup. El archivo de destino también se llamará picture.jpg.
Si usted es el usuario, puede abreviar su directorio de inicio ("/ home / chuck") usando una tilde ("~"). Por ejemplo,
cp ~ / pictures / picture.jpg ~ / backup / picture.jpg
… funciona igual que el comando anterior cuando lo ejecuta Chuck.
Copiar múltiples archivos a un directorio
O quizás desee copiar varios archivos en otro directorio. Para lograr esto, puede especificar varios archivos como origen y un nombre de directorio como destino. Digamos que usted es el usuario sally, y tiene un montón de archivos en el directorio / home / sally / pictures / named picture-01.jpg, picture-02.jpg, etc. y desea copiarlos en el directorio / inicio / sally / copia de seguridad de imágenes /. Este comando hará el truco:
cp ~ / pictures / picture - *. jpg ~ / picture-backup
Aquí, usamos un comodín (el asterisco, "*") para indicar que los archivos de origen son todos los archivos en el directorio / home / sally / pictures cuyo nombre comienza con "picture-" y tiene la extensión ".jpg". Se copiarán en el directorio / home / sally / picture-backup, suponiendo que ese directorio ya exista. Si no existe, cp le da un mensaje de error y no se copiarán archivos.
También puede especificar varios archivos de origen uno tras otro, y cp esperará que el argumento final sea un nombre de directorio, y copiarlos todos allí. Por ejemplo,
cp ~ / pictures / picture-01.jpg ~ / pictures / picture-02.jpg ~ / picture-backup
… copiará solo esos dos archivos, /home/sally/picture-01.jpg y /home/sally/picture-02.jpg, en el directorio / home / sally / picture-backup.
Copiar archivos de forma recursiva
Puede usar cp para copiar estructuras de directorio completas de un lugar a otro utilizando la opción -R para realizar una copia recursiva. Digamos que usted es el usuario Steve y tiene un directorio, / home / steve / files, que contiene muchos archivos y subdirectorios. Desea copiar todos esos archivos y todos los subdirectorios (y los archivos y subdirectorios que contienen) en una nueva ubicación, / home / steve / files-backup. Puede copiarlos todos con el comando:
cp -R ~ / files ~ / files-backup
… y toda la estructura del directorio se copiará en el directorio / home / steve / files-backup. Al realizar una copia recursiva:
- Si la copia de seguridad de los archivos del directorio ya existe, los archivos del directorio se colocarán dentro.
- Si la copia de seguridad de archivos aún no existe, se creará y el contenido del directorio de archivos se colocará dentro de él.
Crear enlaces simbólicos en lugar de copiar datos
Otro truco útil es usar cp para crear enlaces simbólicos a sus archivos fuente. Es posible que ya esté familiarizado con el uso del comando ln para crear enlaces simbólicos; cp es una excelente manera de crear enlaces simbólicos múltiples a la vez.
cp crea enlaces simbólicos si especifica la opción -s. Entonces, por ejemplo,
cp -s file.txt file2.txt
… crea un enlace simbólico, file2.txt, que apunta a file.txt.
También puede crear enlaces simbólicos a partir de múltiples archivos de origen, especificando un directorio como destino.
Digamos que usted es el usuario melissa y tiene un conjunto de archivos, file01.txt, file02.txt, etc. en el directorio / home / melissa / myfiles. Desea crear enlaces simbólicos a estos archivos en el directorio existente / home / melissa / myfiles2. Este comando hará el truco:
cp -s ~ / myfiles / file * .txt ~ / myfiles2
El directorio myfiles2 ahora contendrá enlaces simbólicos al archivo * .txt en el directorio / home / melissa / myfiles. El directorio myfiles2 ya debe existir para que la operación tenga éxito; si no existe, cp le da un mensaje de error y no se copiará nada.
Esto también funcionará con una copia recursiva. Entonces el comando:
cp -R -s ~ / myfiles ~ / myfiles2
… volverá a crear la estructura de directorios de / home / melissa / myfiles, incluidos los subdirectorios y sus contenidos; los archivos se crearán como enlaces simbólicos a los originales, pero los directorios no serán enlaces simbólicos, solo directorios normales. Si myfiles2 ya existe, cp crea un directorio dentro de él llamado myfiles que contiene la estructura del directorio y los enlaces simbólicos; si myfiles2 aún no existe, se creará y contendrá los subdirectorios y enlaces simbólicos a los archivos que contiene myfiles.
Hay otras opciones que puede proporcionar a cp que afectarán su comportamiento. Estos se enumeran, junto con la sintaxis precisa del comando, en las siguientes secciones.
Haga una copia de un archivo en el mismo directorio
cp origfile newfile
Crea una copia del archivo en el directorio de trabajo llamado origfile. La copia se llamará newfile y se ubicará en el directorio de trabajo.
Si desea que se le solicite antes de sobrescribir un archivo, use la opción -i (interactiva). Por ejemplo:
cp -i archivo antiguo archivo nuevo
Si ya existe un nuevo archivo, se le preguntará:
cp: sobrescribir 'newfile'?
Si escribe y (o sí, Y, YES o cualquier otra combinación de mayúsculas y minúsculas), el archivo nuevo se sobrescribirá con una copia del archivo original. Escribir cualquier otra cosa anulará la operación.
Copie un archivo en otro directorio
cp origfile / directorio / subdirectorio
Crea una copia del archivo en el directorio de trabajo llamado origfile. La copia se ubicará en el directorio / directorio / subdirectorio y se llamará origfile.
cp origfile / directorio / subdirectorio /.
Igual que el comando anterior. La barra diagonal (/.) Está implícita en la forma anterior del comando. (El punto es un archivo especial en cada directorio de Linux que significa "este directorio").
Copie un archivo en otro directorio y asígnele un nuevo nombre.
cp origfile / directorio / subdirectorio / archivo nuevo
Crea una copia del archivo en el directorio de trabajo llamado origfile. La copia se llamará newfile y se ubicará en el directorio / directorio / subdirectorio.
Copie varios archivos en otro directorio, usando un comodín
archivo cp * / directorio / subdirectorio
Copie cada archivo en el directorio de trabajo cuyo nombre comienza con el archivo en el directorio / directorio / subdirectorio. El asterisco ("*") es un comodín, un carácter especial que se expande para coincidir con otros caracteres. Específicamente, el comodín de asterisco coincide con cero o más caracteres que no son espacios en blanco. Por ejemplo, este comando copiará cualquier archivo llamado file, file001, file.txt, fileone.jpg, file-archive.zip, etc.
archivo cp * .jpg / directorio / subdirectorio
Copie cada archivo en el directorio de trabajo cuyo nombre comienza con el archivo y termina con la extensión de archivo .jpg. Por ejemplo, haría copias de cualquier archivo llamado file, file001.jpg, file002.jpg o file-new.jpg, etc. Las copias se colocarán en el directorio / directorio / subdirectorio.
Copie una estructura de directorio completa a otra ubicación
cp -R / uno / dos / tres / cuatro
Copie el directorio dos (ubicado en el directorio / uno), y todo lo que contiene dos, en el directorio de destino / tres / cuatro. El resultado se llamará / tres / cuatro / dos. El directorio / three ya debe existir para que el comando tenga éxito. Si el directorio cuatro aún no existe en el directorio / tres, se creará.
cp file1.txt newdir
Copia el archivo1.txt en el directorio de trabajo al subdirectorio newdir.
cp /home/public_html/mylog.txt /home/public_html/backup/mylog.bak
Copia el archivo mylog.txt en el directorio public_html en el directorio public_html / backup como mylog.bak.
cp -u * .txt newdir
Copie todos los archivos que terminan en .txt en el directorio newdir, pero solo si los archivos aún no existen en el nuevo directorio, o si los archivos que se copian son más nuevos.
cp -R / home / hope / files / * / home / hope / backup
Copia recursivamente todos los archivos, directorios y subdirectorios en el directorio / home / hope / files en el directorio / home / hope / backup. Si la copia de seguridad del directorio no existe en el directorio / home / hope, se creará.
cp –archivo de respaldo archivo nuevo
Si ya existe un archivo nuevo, haga una copia de seguridad del archivo nuevo existente antes de sobrescribirlo con una copia del archivo original. Por defecto, la copia de seguridad de newfile se llamará newfile ~.
cp –backup = archivo nuevo origfile numerado
Si ya existe un archivo nuevo, haga una copia de seguridad del archivo nuevo existente antes de sobrescribirlo con una copia del archivo original. La copia de seguridad de archivo nuevo se llamará archivo nuevo. ~ 1 ~ si no existe otra copia de seguridad, o archivo nuevo. ~ 2 ~ si archivo nuevo. ~ 1 ~ existe, etc.
Comandos relacionados
dd: copia y convierte la codificación de archivos. ln: crea un enlace, o un enlace simbólico, en un archivo o directorio.mv: mueve archivos y directorios de una ubicación a otra y, opcionalmente, renómbralos.
#goog-gt-tt {display:none !important;}.goog-te-banner-frame {display:none !important;}.goog-te-menu-value:hover {text-decoration:none !important;}body {top:0 !important;}#gtranslate_element {display:none!important;}
var gt_not_translated_list = [«cp myfile.txt myfilecopy.txt»,»cp –help»,»cp –version»,»xattr»,»–remove-destination»,»cp picture.jpg picture-02.jpg»,»cp /home/chuck/pictures/picture.jpg /home/chuck/backup/picture.jpg»,»cp -s file.txt file2.txt»,»cp origfile newfile»,»cp file1.txt newdir»,»cp /home/public_html/mylog.txt /home/public_html/backup/mylog.bak»];
document.cookie = «googtrans=/en/es; domain=.balogs.xyz»;
document.cookie = «googtrans=/en/es»;
function GTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: ‘en’,layout: google.translate.TranslateElement.InlineLayout.SIMPLE,autoDisplay: false,multilanguagePage: true}, ‘gtranslate_element’);}