Copiar, mover, renombrar y borrar archivos y directorios
-
Upload
oscar-marin -
Category
Documents
-
view
2.291 -
download
0
Transcript of 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
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.
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
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'
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