Comandos LINUX de manipulación de archivos

Download Report

Transcript Comandos LINUX de manipulación de archivos

Comandos de manipulación de Archivos
Objetivos
 Objetivos de la clase
 Identifica sistemas de archivos y comandos
del sistema operativo para inclusión en
programas realizados en el ambiente de
programación del intérprete de comandos
Bash.
Desarrollo
Comandos LINUX
 Todos los comandos de LINUX se ajustan mas
o menos al siguiente formato:
comando [opciones] [argumento]
 Opciones
hace referencia a las distintas
opciones de aplicación de dicho comando; van
precedidas de un “-”.
 Argumento hace referencia al elemento sobre
el cual se va a aplicar el comando (puede ser
un archivo, una variable, un directorio, etc.).
Desarrollo
Comandos LINUX
 La mayoría de los comandos LINUX de
usuario simple se encuentran en los
directorios /bin, /usr/bin y /usr/local/bin.
 Los
comandos LINUX son archivos
binarios, de ahí el nombre de estos
directorios (bin viene de binary).
Desarrollo
Comandos LINUX de manipulación de archivos
 CAT - Todo lo que hace cat es copiar los
datos desde la entrada estándar (teclado)
hacia la salida estándar(pantalla).
 Con el comando cat>archivo la entrada
estándar sigue siendo el teclado, pero la
salida estándar se ha redireccionado hacia un
archivo. Cada línea que teclee se copiará en
el archivo.
Desarrollo
Comandos LINUX de manipulación de archivos
 Si el archivo no existe, LINUX lo crea por
usted. Si existe, su contenido se reemplaza.
 Puede teclear cuantas líneas desee y, al final,
oprimir <CTRL>+<D>.
 Si desea anexar datos al final de un archivo
existente, use >> para redireccionar la salida
estándar: cat>>archivo
Desarrollo
Comandos LINUX de manipulación de archivos
 HEAD - El comando head permite desplegar
el comienzo de un archivo. Por defecto, head
despliega las primeros diez líneas de un
archivo.
 Si lo que se desea es desplegar un número
diferente de líneas, se pueden especificar
como opción al comando head.
Desarrollo
Comandos LINUX de manipulación de archivos
 Por ejemplo, para desplegar las primeras
veinte líneas de un archivo se puede usar:
head –20 archivo.
 TAIL - El comando tail permite desplegar el
fin de un archivo. Por defecto, tail despliega
las últimos diez líneas de un archivo.
 Por ejemplo, tail -15 archivo desplegará las
últimas 15 líneas del archivo.
Desarrollo
Comandos LINUX de manipulación de archivos
 La opción -f (follow) de tail, permite escribir
la última parte del archivo a medida que va
creciendo. Esta opción es muy útil para
monitorizar archivos de registro “log“ que van
creciendo con el tiempo, a modo de ejemplo,
considere la orden: tail –f /var/log/messages,
que permite monitorizar el ARCHIVO DE
LOG /var/log/messages.
Desarrollo
Comandos LINUX de manipulación de archivos
 MORE - Además de cat, podemos servirnos
de otra orden para visualizar archivos,
llamada more. Este comando visualiza, el o
los archivos indicados, por pantallas
completas, deteniéndose al final de cada
pantalla o cada vez que se encuentre un
caracter de borrado de pantalla.
 Una diferencia con cat es que sólo se pueden
visualizar archivos de texto, no binarios.
Desarrollo
Comandos LINUX de manipulación de archivos
 Con more al final de cada página desplegada
en pantalla se nos indica que hay más, por
medio del indicador --More--, y también se
nos informa del porcentaje de caracteres que
hemos visualizado. Si en este punto
pulsamos la <BARRA ESPACIADORA>,
conseguiremos una nueva pantalla del mismo
archivo, que se imprimirá y
volverá a
informarnos de la misma manera como lo
hizo anteriormente.
Desarrollo
Comandos LINUX de manipulación de archivos
 El
procedimiento antes mencionado lo
podríamos repetir hasta llegar al final del
archivo.
 Pulsando
la
tecla
<RETORNO>
conseguiremos que se visualice una sola
línea más.
 CP - Para realizar una copia de un archivo se
utiliza el comando cp.
Desarrollo
Comandos LINUX de manipulación de archivos
 Copiar un archivo consiste en sacar una
copia del mismo pero con otro nombre, o en
otro lugar, es decir, tener dos archivos
exactamente iguales, pero independientes,
cada uno con su nombre y en su propio
directorio.
 Por ejemplo, si tenemos un archivo llamado
datos y se desea obtener una copia que lleve
el nombre extra, se usa: cp datos extra.
Desarrollo
Comandos LINUX de manipulación de archivos
 Con cp no solo es posible copiar archivos,
sino que también es posible copiar directorios
“recursivamente” por medio de la opción -R.
 Con la opción -p se preservan los permisos,
el usuario y el grupo del archivo a copiar.
 Con la opción -f se borran los archivos de
destino ya existentes.
Desarrollo
Comandos LINUX de manipulación de archivos
 Para indicar la ubicación en disco de un
archivo hay que indicar la lista completa de
directorios que contienen al fichero. Es decir,
un fichero puede estar dentro de un directorio
que a su vez está dentro de otro y así varios.
 En esta lista, que denominaremos RUTA DE
ACCESO, cada directorio está separado del
siguiente directorio por el signo “/” , y sin dejar
espacios en blanco.
Desarrollo
Comandos LINUX de manipulación de archivos
 MV - El comando mv nos va a permitir
cambiar el nombre a un archivo, o moverlo de
un directorio a otro. Por ejemplo, si desea
mover un archivo llamado datos hacia un
directorio llamado trabajo, use: mv datos
trabajo.
 si un directorio llamado trabajo no existe,
entonces mv supone que usted quiere
cambiar el nombre del archivo.
Desarrollo
Comandos LINUX de manipulación de archivos
 Con el comando mv se pueden renombrar y
mover no
directorios.
sólo
archivos,
sino
también
 RM - Para borrar o eliminar un archivo
tenemos el comando rm. Tras la propia orden
pondremos el o los nombres de los archivos
que deseemos borrar.
Desarrollo
Comandos LINUX de manipulación de archivos
 Si un archivo tiene enlaces y lo borramos, en
realidad habremos borrado uno de sus
enlaces, y no el archivo propiamente tal, pero
suponiendo que el enlace que estemos
borrando sea el último entonces se borrará
también el archivo.
 Por ejemplo, si deseamos borrar el archivo
llamado datos, usaremos: rm datos.
Desarrollo
Comandos LINUX de manipulación de archivos
 Para
borrar un subdirectorio completo
“recursivamente” use el comando rm con la
opción -r y especifique el nombre de un
directorio; rm no sólo borra el directorio sino
todos sus archivos y subdirectorios.
 Por ejemplo, para borrar un directorio llamado
extra, teclee: rm –r extra.
Desarrollo
Comandos LINUX de manipulación de archivos
 Con la opción -f no se imprimen mensajes de
error, ni se pregunta al usuario confirmación
de cada archivo borrado.
 Con la opción -i (interactive) se pregunta al
usuario por confirmación del borrado, esto
podría ser útil cuando, a modo de ejemplo, se
desea borrar solo algunos de los archivos
cuyos nombres empiezan con “a”: ls -i a*.
Desarrollo
Comandos LINUX de manipulación de archivos
 ¿Es posible restaurar un archivo previamente
borrado? Resp.: NO.
 WC - El comando wc cuenta las líneas,
palabras y caracteres. Los datos pueden
provenir de la entrada estándar o de uno o
más archivos. Este comando es de acción
inmediata. Genera como salida tres números:
de líneas, palabras y caracteres en los datos.
Desarrollo
Comandos LINUX de manipulación de archivos
 Si usted especifica el nombre de un archivo,
wc escribe el nombre del archivo después de
los tres números. Si especifica más de un
archivo, wc también proporciona las
estadísticas totales.
 Si no quiere los tres números, puede usar las
opciones : -l cuenta las líneas; -w cuenta las
palabras; y –c cuenta los caracteres.
Desarrollo
Comandos LINUX de manipulación de archivos
 Por ejemplo, podemos usar el comando wc
para contar el número de identificadores de
usuario dentro de su sistema actualmente,
por medio de la orden: who ¦ wc –l.
 LN - El comando ln permite crear un enlace
(o liga) para un archivo. Por ejemplo, si
tenemos un archivo llamado datos y
deseamos crear un enlace para este archivo
llamado otro, usaremos : ln datos otro.
Desarrollo
Comandos LINUX de manipulación de archivos
 La opción -s
permite crear un ENLACE
SIMBÓLICO de un archivo.
 Cuando se ejecuta ls -l en un directorio
donde hay un ENLACE SIMBÓLICO, éste se
nota de la siguiente manera:
[alumno@localhost ~]$ ln –s archivo enlace
[alumno@localhost ~]$ ls –l enlace
lrw-r--r-- 1 alumno alumno 11 Apr 8 13:33 enlace ->archivo
Desarrollo
Comandos LINUX de manipulación de archivos
 SORT - El comando sort efectúa dos tareas
principales. Primera, y como es de esperar,
ordena datos. sort es muy útil para ordenar
archivos de datos y para ordenar los datos
dentro de una interconexión de procesos.
Segunda: sort lee archivos con datos
previamente ordenados y los fusiona para
formar un archivo grande y ordenado.
Desarrollo
Comandos LINUX de manipulación de archivos
 La manera más sencilla de usar sort consiste en
ordenar un solo archivo y desplegar el resultado
en pantalla, por ejemplo: sort datos.
 Para guardar los datos ya ordenados en otro
archivo, puede redireccionar la salida estándar y
usar: sort datos>maestro.
 Para ordenar un archivo y guardar la salida en el
mismo archivo, usar: sort –o datos datos.
Desarrollo
Comandos LINUX de manipulación de archivos
 De manera preestablecida, los datos se
acomodan en orden ascendente, de acuerdo
con el código ASCII. Lo relevante es que el
código ASCII es como el alfabeto que usted
usa, pues los caracteres guardan cierto
orden, orden que usa sort para hacer
comparaciones.
 El comando sort tiene varias opciones que
puede usar para modificar el orden que desea
emplear.
Desarrollo
Comandos LINUX de manipulación de archivos
 Por ejemplo, La opción –d
sólo toma en
cuenta letras, números y espacios, ignorando
los demás caracteres; la opción –r ordena los
datos de manera inversa.
 Además de ordenar los datos, sort también
fusiona archivos múltiples que contengan
datos ordenados. Para usar sort de este
modo, especifique la opción –m.
Desarrollo
Comandos LINUX de manipulación de archivos
 CUT - El comando cut extrae columnas de
datos de un archivo. Este comando ofrece
una gran flexibilidad. Puede extraer columnas
específicas o fragmentos delimitados de cada
línea del archivo.
 cut requiere la lista de columnas que usted
desea extraer y el nombre de un archivo de
entrada.
Desarrollo
Comandos LINUX de manipulación de archivos
 Por ejemplo, para extraer las columnas 1, 8 y
10 del archivo llamado datos, se puede usar:
cut –c1,8,10 datos
 También puede especificar un rango de
números de columna colocando el comienzo
y el final del rango.
 Por ejemplo, para extraer las columnas de la
1 a la 3 del archivo datos, use: cut –c1-3
datos.
Desarrollo
Comandos LINUX de manipulación de archivos
 PASTE – El comando PASTE fusiona líneas
correspondientes de un archivo en columnas
verticales e imprime al resultado a pantalla.
Un ejemplo de uso de PASTE sería: paste
arch1 arch2.
 Si uno de los archivos tiene menos líneas que
el otro, el comando PASTE concatenará las
líneas con el archivo más largo con una línea
en blanco.
Desarrollo
Comandos LINUX de manipulación de archivos
 El comando PASTE toma líneas desde dos o
más archivos y los coloca en columnas y los
presenta en la salida estándar o pantalla.
 El delimitador por defecto en la salida será el
tabulador, con la opción -d se puede
especificar un delimitador diferente. Por
ejemplo, podemos usar: paste -d: nombres
apellidos>datos.
Desarrollo
Comandos LINUX de manipulación de archivos
 Se pueden separar columnas con diferentes
caracteres solo con especificar más de un
carácter después de la opción -d, por
ejemplo: paste -d ‘-*’ arch1 arch2, separaría
la primera de la segunda columna con un “-” y
la segunda de la tercera columna con un “*”.
 Si más de una columna existe, el comando
paste alternaría usando “-” y “*” como
delimitador.
Desarrollo
Comandos LINUX de manipulación de archivos
 La opción -s de PASTE permite fusionar
todas las líneas de cada archivo en una única
línea.
 Cada “\n” en un archivo, excepto el último, es
reemplazado con un tabulador o un
delimitador especificado por la opción –d. Por
ejemplo, paste –s –d ‘*’ nombres, fusiona
todas las líneas del archivo nombres en una
línea usando “*” como delimitador.
Desarrollo
Comandos LINUX de manipulación de archivos
 FILE - El comando file realiza una serie de
comprobaciones en un archivo para tratar de
clasificarlo.
 Tras la ejecución de find se muestra el tipo
del archivo e información al respecto del
mismo.
[alumno@localhost ~]$ file tarea
tarea: is a directory
Desarrollo
Comandos LINUX de manipulación de archivos
 STAT
- El comando stat nos muestra
información muy completa acerca de archivos
o SISTEMAS DE ARCHIVOS.
 Este comando nos reporta el nombre del
archivo, su tamaño, los bloques que ocupa, el
tipo de archivo (regular), información física de
donde se encuentra (dispositivo/i-node), los
permisos estándar, los dueños del archivo y
las tres marcas de tiempo UNIX.
Desarrollo
Comandos LINUX de manipulación de archivos
[alumno@localhost ~]$ stat archivo
File: `archivo'
Size: 93300148 Blocks: 182424 IO Block: 4096 Regular File
Device: 804h/2052d Inode: 1785294 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000) Gid: ( 100/ users)
Access: 2008-04-03 18:45:29.000000000 +0200
Modify: 2008-01-30 17:56:08.000000000 +0100
Change: 2008-03-04 23:32:02.000000000 +0100
Desarrollo
Comandos LINUX de manipulación de archivos
 Una
parte importante acerca de la
información desplegada por stat, tiene que
ver con la información de la fecha de registro
del acceso al archivo. Muestra que se
accedió (Access) al archivo el 2008-04-03 a
las 18:45:29, o el 3 de abril de 2008 a las
18:45:29 PM. Este es el momento en el cual
se empezó a utilizar el archivo. El archivo fue
modificado (Modify) el 2008-01-30 a las
23:32:02.
Desarrollo
Comandos LINUX de manipulación de archivos
 Finalmente, la fecha de registro al lado de
Cambiar (Change) muestra cuándo
cambiado el estado del archivo.
fue
 Además del tamaño de archivo usual (que se
puede obtener de ls -l), se puede obtener la
cantidad de bloques que ocupa este archivo.

Desarrollo
Comandos LINUX de manipulación de archivos
 El tamaño de bloque LINUX típico es de 512
bytes, entonces un archivo de 93.300.148
bytes ocuparía (93300148/512=) 182226.85
bloques. Como los bloques se utilizan en su
totalidad, este archivo utiliza un número
entero de bloques. En lugar de hacer
conjeturas, usted puede saber cuáles son los
bloques exactos.
Desarrollo
Comandos LINUX de manipulación de archivos
 La opción -f del comando stat permite
mostrar la información de un SISTEMA DE
ARCHIVO en lugar de un archivo:
[alumno@localhost ~]$ stat -f oracle
File: "oracle"
ID:
0
Namelen: 255
Type:
ext2/ext3
Blocks: Total: 24033242 Free: 15419301 Available: 14198462 Size: 4096
Inodes: Total: 12222464 Free: 12093976
Desarrollo
Comandos LINUX de manipulación de archivos
 Por último, la opción -t brinda exactamente la
misma información pero en una sola línea,
con los datos separados por un espacio.
Resumen
Los comandos LINUX de manipulación de archivos calzan, mas o
menos, con el siguiente formato: comando [opciones] [argumentos].
Comando es el nombre del comando u orden que el SHELL debe
ejecutar, opciones especificará la o las opciones del comando y
argumentos corresponde a el o los elementos (archivos) sobre los
cuales se aplicará el comando.
Podemos distinguir: comandos de visualización de archivos: cat, more,
less, comando para copiar archivos: cp, comando para borrar archivos:
rm, comandos filtros: head, tail, cut, sort, entre otros.
El comando sort efectúa dos tareas principales: ordenamiento de datos
y fusión de dos o más archivos ordenados.