Está en la página 1de 9

COMANDO CP

Estudiantes:
Alvaro Alejandro Zarabanda (20161020507)
Cristian Camilo Niño (20161020540)

Presentado a:
Jorge Hernando Malaver Parra

Asignatura: Sistemas Operativos

Universidad Distrital Francisco José de Caldas


Ingeniería de Sistemas
Agosto 20 de 2019
INTRODUCCIÓN 2
SINTAXIS DEL COMANDO LINUX CP 3
COPIAR UN ARCHIVO A UNA DIRECTORIO 4
COPIAR 2 O MÁS ARCHIVOS DE UN DIRECTORIO 5
COPIAR TODOS LOS ARCHIVOS A UN DIRECTORIO 5
COPIAR UN DIRECTORIO COMPLETO 5
RESPALDAR ANTES DE SOBREESCRIBIR 6
FORZAR LA COPIA 6
RECIBIR NOTIFICACIÓN DE LA COPIA 7
PRESERVAR ENLACES DUROS Y SIMBÓLICOS AL COPIAR 7
NO SOBREESCRIBIR AL COPIAR UN ARCHIVO 8
PEDIR CONFIRMACIÓN ANTES DE SOBREESCRIBIR 8
CREAR ENLACES DUROS ANTES DE COPIAR 8
NOTA 9

INTRODUCCIÓN
Copiar archivos es una tarea indispensable que debe cumplir cualquier sistema
operativo, en el caso de linux podemos hacerlo con el comando cp, pero además de solo
simplemente copiar, este comando ofrece otras funcionalidades como copiar enlaces,
permisos, propiedades, etc. En este informe, se dará a conocer el repertorio de
parámetros que tiene este comando para aplicarlos posteriormente en algunos ejemplos.

SINTAXIS DEL COMANDO LINUX CP

cp [opciones]... [-T] origen destino


cp [opciones]... origen... directorio
cp [opciones]... -t directorio origen…
en la siguiente tabla se mostrarán algunas de las opciones que ofrece el comando linux
cp:

OPCIÓN DESCRIPCIÓN

-a archive files

-f copia forzada al remover el archivo


destino si es necesario

-i interactivo, pide confirmación del usuario


antes de sobreescribir

-l enlaces en vez de copia

-L seguir enlaces simbólicos

-n no sobre escribir archivos

-R copia recursiva recursive copy


(incluyendo archivos ocultos)

-u actualizar, copia cuando la fuente es más


reciente que el destino

-v muestra mensajes informativos

COPIAR UN ARCHIVO A UNA DIRECTORIO

Este es el uso más sencillo de del comando cp que es copiar un archivo dentro de un
directorio. Este uso del comando cp no requiere de opciones, solo indicar el archivo
fuente y el directorio destino que puede ser una ruta absoluta o una ruta relativa.

Ejemplo:

cp archivo-01.txt /home/usuario/Downloads/tmp2/
COPIAR 2 O MÁS ARCHIVOS DE UN DIRECTORIO
El comando linux cp permite indicar la copia de uno o más archivo que serán copiados a
un directorio.

Ejemplo:

cp archivo.txt programa.py ~/bin/programa/

COPIAR TODOS LOS ARCHIVOS A UN DIRECTORIO


Es posible utilizar los caracteres comodines * y ? para indicar que deseamos copiar
cualquier nombre de archivo, en este caso todos los archivos de con los caracteres «.txt»

Ejemplo:

cp *.txt respaldo

Si se deseara realizar la copia de todos los archivos a un directorio se puede hacer con
este comando:

Ejemplo:

cp * directorio

COPIAR UN DIRECTORIO COMPLETO


Una de las cosas que siempre se quiere hacer con el comando cp y que desconcierta a
cualquier principiante es la copia de un directorio por que si no se hace correctamente
arroja un error como este :

$ cp directorio ./respaldo/
cp: omitting directory ‘directorio’

Lo primero que se viene a la mente es «no se pueden copiar directorio» pero no es que
no se pueda sino que un directorio es solo una lista de archivos, entonces necesitamos
copiar también los archivos que hay dentro de la lista de este «archivo especial» o
directorio, para hacer esto se requiere del parámetro -r, así el comando correcto es este:

cp -r directorio ./respaldo/
Siempre hay que tener en cuenta la importancia de los parámetros.

RESPALDAR ANTES DE SOBREESCRIBIR


En algunas ocasiones se quiere copiar archivos con el mismo nombre, con lo cual es
muy útil tener un respaldo del archivo que se va a sobreescribir. Para esto, el comando
cp tiene una opción muy práctica que poco se conoce y es el parámetro -b o –backup y
se emplea de esta forma:

cp --backup archivo.txt ./respaldo/

Al copiar «archivo.txt» al directorio «respaldo» lo que primero es generar una copia del
archivo que se encuentra dentro del directorio respaldo y le agrega el caracter ~ al final
y posteriormente copia y sobreescribe «archivo.txt». Si tu das un ls al directorio respaldo
se verá algo como esto:

$ cp --backup archivo.txt ./respaldo/


$ ls -l respaldo
-rw-r--r-- 1 lm lm 12 Jul 21 18:41 archivo.txt
-rw-r--r-- 1 lm lm 4 Jul 21 18:40 archivo.txt~

Si utilizar la opción –backup=numbered entonces se creará un nuevo archivo de respaldo


cada vez que se sobreescriba el archivo que se está copiando. Aquí un ejemplo:

$ cp --backup=numbered archivo.txt ./respaldo/


$ ls -l respaldo
-rw-r--r-- 1 lm lm 12 Jul 21 19:07 archivo.txt
-rw-r--r-- 1 lm lm 4 Jul 21 18:40 archivo.txt~
-rw-r--r-- 1 lm lm 12 Jul 21 19:07 archivo.txt.~1~
-rw-r--r-- 1 lm lm 18 Jul 21 19:07 archivo.txt.~2~

FORZAR LA COPIA
Cuando sea necesario realizar la copia de un archivo sin importar si ya existe otro archivo
con el mismo nombre y se desea sobre escribir sin recibir una consulta o un mensaje de
advertencia se puede utilizar el parámetro -f para forzar la copia.

cp -f archivo.txt ./respaldo/
RECIBIR NOTIFICACIÓN DE LA COPIA
Cuando es necesario saber qué ocurre con la copia se utiliza el parámetro -v con el que
se recibirá en pantalla un mensaje por cada archivo que se copie o en caso de algún
error igual se presentará un mensaje para saber en todo momento que ocurrió. Aquí
algunos ejemplos:

$ cp -v archivo.txt archivo-nuevo.txt
‘archivo.txt’ -> ‘archivo-nuevo.txt’

$ cp --backup=numbered -v archivo.txt ./respaldo/


‘archivo.txt’ -> ‘./respaldo/archivo.txt’ (backup: ‘./respaldo/archivo.txt.~3~’)

PRESERVAR ENLACES DUROS Y SIMBÓLICOS AL COPIAR


Los enlaces duro y simbólicos son una práctica muy común en linux así que es probable
que en algún momento vayas a necesitar hacer la copia de algunos archivos que en
realidad son enlaces y esta opción de va a ser muy útil.

El comando cp sin parámetros copia los enlaces como un archivo en vez de copiar el
enlace. Para copiar manteniendo los enlaces puedes utilizar el parámetro -d. Mira la
diferencia de al comento de copiar un enlace en el siguiente ejemplo:

$ ls -l
-rw-r--r-- 1 lm lm 12 Jul 21 18:40 archivo.txt
lrwxrwxrwx 1 lm lm 11 Jul 21 19:43 enalce-archivo.txt -> archivo.txt

Aquí tenemos un enlace «enlace-archivo.txt» que apunta a «archivo.txt» y al momento


de hacer una copia sin parámetros de «enlace-archivo.txt» lo que se copia es un archivo
nuevo de nombre «nuevo-enlace».

$ cp enalce-archivo.txt nuevo-enalce
$ ls -l
-rw-r--r-- 1 lm lm 12 Jul 21 18:40 archivo.txt
lrwxrwxrwx 1 lm lm 11 Jul 21 19:43 enalce-archivo.txt -> archivo.txt
-rw-r--r-- 1 lm lm 12 Jul 21 19:43 nuevo-enalce

Veamos ahora la diferencia de este comportamiento cuando se utilizar el parámetro -d

$ cp -d enalce-archivo.txt nuevo-enalce
$ ls -l
-rw-r--r-- 1 lm lm 12 Jul 21 18:40 archivo.txt
lrwxrwxrwx 1 lm lm 11 Jul 21 19:43 enalce-archivo.txt -> archivo.txt
lrwxrwxrwx 1 lm lm 11 Jul 21 19:48 nuevo-enalce -> archivo.txt

Se puede ver que ahora «nuevo-enlace» es efectivamente un enlace a «archivo.txt»

NO SOBREESCRIBIR AL COPIAR UN ARCHIVO


El comando cp también tiene un parámetro para evitar que un archivo se sobre escriba
al copiar un archivo, si ese archivo ya existe en la ubicación de destino y no deseas que
se sobre escriba puedes utilizar la opción -n

cp -n archivo.tx ./respaldo

PEDIR CONFIRMACIÓN ANTES DE SOBREESCRIBIR


Cuando se desea realizar la copia de uno o varios archivos y se quiere que algunos si
se sobre escriban y otro no se debe utilizar el parámetro -i que te solicita una respuesta
«y» o «s» para confirmar la copia y se sobre escriba o «n» para omitir la copia de ese
archivo y así evitar que se sobre escriba.

Ejemplos:

$ cp -iv archivo.txt ./respaldo/


cp: overwrite ‘./respaldo/archivo.txt’? n

$ cp -iv archivo.txt ./respaldo/


cp: overwrite ‘./respaldo/archivo.txt’? y
‘archivo.txt’ -> ‘./respaldo/archivo.txt’

CREAR ENLACES DUROS ANTES DE COPIAR


Cuando se quiere enlaces duros en vez de copiar los archivos se debe utilizar el
parámetro -l, el uso de este parámetro no realizará una copia del archivo sino que creará
un enlace duro (o hard link) hacia el archivo.

$ cat ./respaldo/enlace-duro
123 456 789
$ echo "1234 5678 9012" > archivo.txt
$ cat ./respaldo/enlace-duro
1234 5678 9012
NOTA
Anteriormente se mostraron algunos de los parámetros y sus funciones, sin embargo se
puede utilizar el comando man cp para ver los detalles de cada uno de los parámetros
del comando.

También podría gustarte