FICHEROS:
La memoria principal es volatil. Los datos que están en memoria principal se pierden cuando apagamos la máquina.
Asi que, hay que almacenarlos en memorias externas (discos, DVD, etc.) para conservarlos indefinidamente. Los
datos se guardan en estructuras llamadas ficheros o archivos. El concepto de fichero como conjunto de fichas no es
válido en el caso de los ordenadores. Cualquier dato de cualquier tipo se tiene que almacenar en un fichero o archivo.
Asi que un fichero puede ser cualquier cosa: una lista de clientes, una carta, un fragmento de sonido, un video, una fotografía,
un programa (conjunto de instruciones), un virus...
Para poder gestionar de forma eficiente los datos (ficheros) le
asignamos a cada uno un nombre arbitrario con caracteres válidos.
El sistema operativo impone las normas para nombrar a los ficheros. En
Window no son válidos los siguientes caracteres:
El nombre de cualquier fichero se compone de dos partes: el nombre propiamente dicho y la extensión. El nombre es obligatorio
y como mínimo debe tener un carácter (256 como máximo). La extensión es opcional e indica el tipo de fichero. Entre el nombre
y la extensión hay un punto (.) como caracter separador.
LOS ICONOS:
Cuando exploramos un disco duro o cualquier otro dispositivo de memoria
externa, observamos infinidad de símbolos (iconos en Window)
con un nombre en su pie. Son los ficheros o archivos asociados a un
dibujo o icono. El icono sólo sirve para identificar de forma
visual el tipo de un archivo. El icono carece de importancia: podemos
cambiar el dibujo por otro, en cambio no debemos cambiar la
extensión o el nombre porque el archivo puede quedar inutilizado.
Windows asocia un icono a cada tipo de archivo reconocido por el
sistema. Si un archivo no es reconocido por el sistema se le asocia un
icono genérico. Los siguientes iconos representan algunos
ejemplos: fichero de imagen, documento de Word, texto plano, sistema,
hoja de cálculo Excel, carpeta de ficheros, archivo desasociado...
En el disco duro de cualquier ordenador podemos contar decenas de miles de ficheros de todo tipo. Sin pretender ser
rigurosos, vamos a clasificar, por razones de claridad, los ficheros de la siguiente manera:
LOS DIRECTORIOS:
Los directorios (carpetas en adelante) son ficheros especiales que contienen más ficheros. Estos permiten estructurar y
organizar las memorias externas en forma de arboles.
LOS PROGRAMAS, EJECUTABLES...
Estos ficheros permiten que trabajemos con la máquina. Hacen que funcione la máquina y que tengamos aplicaciones
con las que trabajar. Por ejemplo, podemos escribir una carta en Word porque tenemos en el disco duro un fichero (winword.exe)
que es el conocido programa de Microsoft...
LOS FICHEROS DE DATOS:
Son lo que crea el usuario y hacen de la máquina algo productivo.
CREACION DE ARCHIVOS
copy con
Podemos crear archivos no muy extensos y de cualquier tipo desde msdos:
Por ejemplo, si deseamos crear un archivo de texto, utilizamos el comando copy con cuya síntaxis es la siguiente:
copy con nombre del archivo.extension
vamos a crear ahora el archivo carta.txt:
copy con carta.txt
Escribimos el texto, presionamos F6, enter y listo!!!.
Nota: el archivo creado se encuentra en la ubicación desde donde ejecutamos el programa, en este ejemplo , el archivo quedó almacenado en C.
Type
El comando type nos permite visualizar desde msdos, archivos de texto, pero eso si , de solo lectura, es decir, no podremos editarlos desde este comando.
type nombre.extension
por ejemplo, si queremos ver el contenido del archivo que acabamos de crear:
type carta.txt
COPIAR, ELIMINAR, RENOVAR ARCHIVOS
|
CONCEPTOS DE DIRECTORIO
Un directorio es un sistema que la computadora utiliza para organizar ficheros a partir de información específica. Los directorios pueden estar organizados jerárquicamente de forma que los ficheros aparezcan de distintas maneras, como por ejemplo el orden en que fueron creados, por orden alfabético, según el tipo, etc. |
CREACION DE DIRECTORIO
Es hora de crear cierta estructura en el sistema de ficheros LFS. Crea un árbol de directorios estándar ejecutando los siguientes comandos:
mkdir -pv /{bin,boot,etc/opt,home,lib,mnt,opt} mkdir -pv /{media/{floppy,cdrom},sbin,srv,var} install -dv -m 0750 /root install -dv -m 1777 /tmp /var/tmp mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src} mkdir -pv /usr/{,local/}share/{doc,info,locale,man} mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo} mkdir -pv /usr/{,local/}share/man/man{1..8} for dir in /usr /usr/local; do ln -sv share/{man,doc,info} $dir done mkdir -v /var/{lock,log,mail,run,spool} mkdir -pv /var/{opt,cache,lib/{misc,locate},local}Los directorios se crean por defecto con los permisos 755, pero esto no es deseable para todos los directorios. En los comandos anteriores se hacen dos cambios: uno para el directorio personal de
root
y otro para los directorios de los ficheros
temporales.
El primer cambio nos asegura que nadie aparte de root pueda entrar en el directorio
/root
, lo mismo que
debería hacer un usuario normal con su directorio personal. El
segundo cambio nos asegura que cualquier usuario pueda escribir en
los directorios /tmp
y /var/tmp
, pero no pueda borrar los ficheros de
otros usuarios. Esto último lo prohibe el llamado “bit pegajoso” (sticky bit), el bit más alto (1)
en la máscara de permisos 1777.COPIAR, ELIMINAR, RENOMBRAR 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. |
$ cp /home/bibliaubuntu/fichero.txt /tmp/nuevo_fichero.txtTambié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 /tmpque 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_respaldoTardará 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.txtLa 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.txtSi querías mover el fichero hacia /tmp manteniendo su nombre original, lo harías así:
$ mv /home/bibliaubuntu/fichero.txt /tmpA 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_seguridadIgual 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.txtY 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
CONSEJO |
Puedes eliminar directorios vacíos con el comando rmdir, aunque es una situación poco frecuente. Es raro tener directorios vacíos por ahí porque normalmente cuando se crea un directorio es para guardar algo en él. Suelo utilizar el comando rm -r para borrar cualquier directorio, vacío o no, porque así no es necesario borrar a mano previamente su contenido. Hay gente para todo, así que decide el método tú mismo. |
CONSEJO |
Los comandos cp, mv y rm tienen muchas más opciones que las tratadas aquí. Para ver todas ellas, utiliza los comandos man e info para ver todo el manual en línea del comando que te interese conocer. |
No hay comentarios:
Publicar un comentario