Copiar, mover, renombrar y borrar archivos y directorios

5
Copiando, moviendo, renombrando y borrando archivos y directorios Cualquier usuario de computadoras, tarde o temprano, debe copiar, mover o renombrar algún fichero. Independientemente de que utilice la línea de comandos o algún interfaz gráfico. Tanto si estás clonando un fichero existente para utilizarlo como punto de partida de un nuevo trabajo, como si estás reorganizando tus ficheros y directorios para hacerlos más fáciles de encontrar, el copiado y traslado de ficheros y directorios es tan fácil de hacer mediante la línea de comandos como lo es con la interfaz gráfica, obviando el hecho de que debes teclear en vez de apuntar y pulsar. En muchos casos, las tropecientas opciones que te ofrecen los comandos de Linux te dan un control más preciso sobre operaciones en las que un interfaz gráfico genérico no puede alcanzar tanto detalle. Continuando con la tradición Unix/Linux de "no teclear jamás más letras que las necesarias", el comando que se usa para copiar ficheros y directorios es el comando cp. Para copiar un fichero hacia otro, simplemente ejecuta el comando cp, seguido por el nombre del fichero existente, y luego el nombre del fichero que va a ser el destinatario de la copia. Por ejemplo, para copiar un fichero llamado fichero.txt hacia el nuevo fichero llamado nuevo_fichero.txt, deberías teclear: $ cp fichero.txt nuevo_fichero.txt ¡ATENCIÓN! Ten muchísimo cuidado cuando teclees el nombre del fichero destinatario del comando cp. Si existe otro fichero con ese mismo nombre, el comando cp lo sobreescribirá con el contenido del fichero que estás copiando, y perderás el contenido previo de ese fichero. Si te preocupan los peligros de este asunto, hay una sección en este capítulo titulada Definiendo y usando alias para saber cómo configurar una versión segura del comando cp. Al especificar las rutas completas del fichero origen y/o del destino, el comando cp puede copiar fichero hacia cualquier parte de tu sistema (siempre que tengas los permisos adecuados para ello, se entiende). Por ejemplo, para copiar el fichero fichero.txt de mi directorio personal hacia el fichero nuevo_fichero.txt del directorio /tmp (en el que todos los usuarios tienen

Transcript of Copiar, mover, renombrar y borrar archivos y directorios

Page 1: Copiar, mover, renombrar y borrar archivos y directorios

Copiando, moviendo, renombrando y borrando archivos y directorios

Cualquier usuario de computadoras, tarde o temprano, debe copiar, mover o

renombrar algún fichero. Independientemente de que utilice la línea de

comandos o algún interfaz gráfico. Tanto si estás clonando un fichero existente

para utilizarlo como punto de partida de un nuevo trabajo, como si estás

reorganizando tus ficheros y directorios para hacerlos más fáciles de encontrar,

el copiado y traslado de ficheros y directorios es tan fácil de hacer mediante la

línea de comandos como lo es con la interfaz gráfica, obviando el hecho de

que debes teclear en vez de apuntar y pulsar. En muchos casos, las

tropecientas opciones que te ofrecen los comandos de Linux te dan un control

más preciso sobre operaciones en las que un interfaz gráfico genérico no

puede alcanzar tanto detalle. Continuando con la tradición Unix/Linux de "no

teclear jamás más letras que las necesarias", el comando que se usa para

copiar ficheros y directorios es el comando cp. Para copiar un fichero hacia

otro, simplemente ejecuta el comando cp, seguido por el nombre del fichero

existente, y luego el nombre del fichero que va a ser el destinatario de la copia.

Por ejemplo, para copiar un fichero llamado fichero.txt hacia el nuevo fichero

llamado nuevo_fichero.txt, deberías teclear:

$ cp fichero.txt nuevo_fichero.txt

¡ATENCIÓN!

Ten muchísimo cuidado cuando teclees el nombre del fichero destinatario del comando cp. Si existe otro fichero con ese mismo nombre, el comando cp lo sobreescribirá con el contenido del fichero que estás copiando, y perderás el contenido previo de ese fichero. Si te preocupan los peligros de este asunto, hay una sección en este capítulo titulada Definiendo y usando alias para saber cómo configurar una versión segura del comando cp.

Al especificar las rutas completas del fichero origen y/o del destino, el comando

cp puede copiar fichero hacia cualquier parte de tu sistema (siempre que

tengas los permisos adecuados para ello, se entiende). Por ejemplo, para

copiar el fichero fichero.txt de mi directorio personal hacia el fichero

nuevo_fichero.txt del directorio /tmp (en el que todos los usuarios tienen

Page 2: Copiar, mover, renombrar y borrar archivos y directorios

permisos de creación de ficheros), podría ejecutar con éxito el siguiente

comando independientemente de cuál fuera mi directorio actual.

$ cp /home/bibliaubuntu/fichero.txt /tmp/nuevo_fichero.txt

También puedes utilizar cp para copiar un fichero a directorios diferentes,

simplemente tecleando el nombre del directorio como destinatario del copiado.

Continuando con el ejemplo anterior, he quediro copiar el fichero fichero.txt

desde mi directorio personal hacia /tmp, pero de forma que el fichero copiado

tenga el mismo nombre que el fichero original. Podría hacerlo con el comando:

$ cp /home/bibliaubuntu/fichero.txt /tmp

que crearía el fichero /tmp/fichero.txt como una copia exacta del

/home/bibliaubuntu/fichero.txt.

El comando cp no exige opciones especiales para la copia de ficheros. Sin

embargo, también puedes copiar directorios completos con él especificando la

opción -r (recursivo). Para copiar un directorio mis_datos y todo su contenido

hacia un nuevo directorio llamado copia_de_respaldo:

$ cp -r mis_datos copia_de_respaldo

Tardará más o menos dependiendo del número de ficheros que tengas en el

directorio mis_datos. Cuando termine, el nuevo directorio contendrá una copia

exacta de mis_datos. Si eres tan incrédulo como Santo Tomás y necesitas

pruebas de cómo va haciendo cada paso, puedes añadir la opción -v (verboso)

para mostrar cada uno de los pasos hechos durante la copia.

$ cp -rv paquetes/frozen_bubble/ /tmp

`paquetes/frozen_bubble/' -> `/tmp/frozen_bubble'

`paquetes/frozen_bubble/frozen-bubble-1.0.0-i486-4pin.tgz' ->

`/tmp/frozen_bubble/frozen-bubble-1.0.0-i486-4pin.tgz'

`paquetes/frozen_bubble/perl-sdl_perl-1.20.0-i486-2pin.tgz' ->

`/tmp/frozen_bubble/perl-sdl_perl-1.20.0-i486-2pin.tgz'

Como era de esperar, un comando cp recursivo también copia recursivamente

todos los subdirectorios y ficheros que contiene el objeto origen.

Page 3: Copiar, mover, renombrar y borrar archivos y directorios

Antes mencioné que especificar el nombre de un directorio como destinatario

de la copia de un fichero sirve para crear un fichero dentro de ese directorio y

con el mismo nombre que el fichero origen. Lo mismo sirve cuando

especificamos el nombre de un directorio como destino de un comando cp para

una copia recursiva. Puede ser confuso al principio si estás intentando copiar

un directorio hacia un directorio con un nuevo nombre existiendo previamente

un directorio con ese mismo nombre. En ese caso, cp crea un directorio con el

mismo nombre que tu directorio original, pero como subdirectorio del directorio

destino.

Mover y renombrar fichero desde la línea de comandos es igual de fácil. Linux

no dispone de un comando de renombrado separado. En Linux, el comando

mv hace ambas funciones: mover ficheros y directorio hacia una nueva

ubicación, y opcionalmente renombrarlos como parte de la operación de

mover. Por ejemplo, para renombrar el fichero fichero.txt como nuevofichero.txt

se haría:

$ mv fichero.txt nuevofichero.txt

La orden mv obedece a las mismas convenciones que cp sobre

especificaciones de rutas completas y sobre especificar un directorio como

nombre de la ubicación hacia donde quieres mover el fichero. Por ejemplo, el

siguiente comando mueve el fichero /home/bibliaubuntu/fichero.txt hacia el

directorio /tmp, y lo renombra como nuevofichero.txt:

$ mv /home/bibliaubuntu/fichero.txt /tmp/nuevofichero.txt

Si querías mover el fichero hacia /tmp manteniendo su nombre original, lo

harías así:

$ mv /home/bibliaubuntu/fichero.txt /tmp

A diferencia del comando cp, el comando mv no necesita opciones especiales

para mover o renombrar directorios. Por ejemplo, para renombrar el directorio

pruebas hacia copia_de_seguridad, teclearías lo siguiente:

$ mv pruebas copia_de_seguridad

Page 4: Copiar, mover, renombrar y borrar archivos y directorios

Igual que hace cp, si el directorio copia_de_seguridad ya existía, el comando

mv movería el directorio pruebas hacia el interior de copia_de_seguridad,

conservando su nombre anterior. El comando mv también dispone de una

opción -v (verboso) para mostrar qué está ocurriendo durante las operaciones

que hace mv, pero es menos informativo cuando lo que haces es simplemente

renombrar un directorio, como puedes ver en el ejemplo siguiente:

$ mv -v pruebas copia_de_seguridad

'pruebas' -> 'copia_de_seguridad'

En este caso, mv sólo necesita renombrar el directorio. Sin embargo, debido al

modo que tiene Linux de crear sistemas de ficheros, el mover directorios de un

sistema de ficheros a otro sistema de ficheros residente en particiones de disco

diferentes exige que cada fichero y subdirectorio se copie antes de ser borrado

por mv, como en el siguiente ejemplo:

$ df . /media/pcsamba

S.ficheros Bloques de 1K Usado Dispon Uso% Montado en

/dev/hda3 19141396 5678852 12490212 32% /

//servidor/compartido 51735552 33655808 18079744 66% /media/pcsamba

$ mv -v prueba /media/pcsamba

`prueba' -> `/media/pcsamba/prueba'

`prueba/6-5.png' -> `/media/pcsamba/prueba/6-5.png'

`prueba/6-1.png' -> `/media/pcsamba/prueba/6-1.png'

`prueba/VirtualBox_1.3.8_Ubuntu_edgy_i386.deb' ->

`/media/pcsamba/prueba/VirtualBox_1.3.8_Ubuntu_edgy_i386.deb'

`prueba/6-0_info_commands.png' -> `/media/pcsamba/prueba/6-

0_info_commands.png'

`prueba/6-2.png' -> `/media/pcsamba/prueba/6-2.png'

`prueba/6-4.png' -> `/media/pcsamba/prueba/6-4.png'

`prueba/6-3.png' -> `/media/pcsamba/prueba/6-3.png'

`prueba/6-6.png' -> `/media/pcsamba/prueba/6-6.png'

`prueba/6-7.png' -> `/media/pcsamba/prueba/6-7.png'

`prueba/6-5.png' borrado

`prueba/6-1.png' borrado

`prueba/VirtualBox_1.3.8_Ubuntu_edgy_i386.deb' borrado

`prueba/6-0_info_commands.png' borrado

`prueba/6-2.png' borrado

`prueba/6-4.png' borrado

`prueba/6-3.png' borrado

`prueba/6-6.png' borrado

`prueba/6-7.png' borrado

directorio borrado: `prueba'

Page 5: Copiar, mover, renombrar y borrar archivos y directorios

Como puedes ver, la mayor parte de lo que hace mv es muy similar a lo que

hace cp. En el ejemplo vemos cómo se usa el comando df para demostrar que

el directorio actual (".") y el directorio destino (/media/pcsamba) están situados

en sistemas de ficheros (y ordenadores) diferentes. Puedes ver las diferencias

en la salida de texto verbosa del comando mv.

Igualmente que el copiar y mover, el borrar ficheros y directorios es una

operación muy frecuente. Sea porque estás eliminando cosas para liberar

espacio en disco para proyectos futuros, sea porque estás eliminando

respaldos o proyectos que ya finalizaste, sea porque quieres borrar

informaciones que no quieres que nadie más vea, es bastante fácil eliminar

ficheros mediante la línea de comandos. El comando necesario se llama rm.

Puedes ver que seguimos con la filosofía de "cuanto menos se teclee, mejor", y

es la abreviatura del inglés remove (eliminar, borrar). Para eliminar un fichero

en Linux, simplemente teclea el comando rm seguido por el nombre del fichero.

Por ejemplo:

$ rm fichero.txt

Y adiós al fichero. Igual que cp, el comando rm acepta la opción -r (borrado

recursivo) para que puedas eliminar directorios enteros. Por ejemplo, para

eliminar permanentemente el directorio copia_de_seguridad, teclearías:

$ rm -r copia_de_seguridad