MANEJO DE ARCHIVOS Y DIRECTORIOS A TRAVES DE COMANDOS Mas allá de interfaces gráficas como KFM, Linux dispone de un numeroso conjunto de utilidades para manipular archivos (individualmente o en grupos) tipeando comandos en una terminal. A través de esta modalidad de trabajo es posible alcanzar un alto nivel de flexibilidad y versatilidad para realizar operaciones de cualquier grado de complejidad.Los comandos utilizados mas frecuentemente se describen brevemente a continuación. Para un mayor nivel de detalle, se sugiere consultar el manual en línea de Linux (ver mas adelante el comando man) y especialmente la documentación del interprete de comandos utilizado (usualmente, el bash).
COMANDOS LINUX PARA LA GESTION DE ARCHIVOS Y DIRECTORIOS
cp
Propósito
El comando cp es un abreviatura de copy (copiar); permite copiar archivos y directorios. Para copiar un archivo se usa el siguiente mandato:
Sintaxis
cp [Opciones] archivo_fuente directorio_destino
cp [Opciones] archivo_fuente archivo_destino
Opciones
-a conserva todos los atributos de los archivos.
-b hace un backup antes de proceder a la copia.
-d copia un vínculo pero no el fichero al que se hace referencia.
-i pide confirmación antes de sobreescribir archivos.
-p conserva los sellos de propiedad, permisos y fecha.
-R copia los archivos y subdirectorios.
-s crea enlaces en vez de copiar los ficheros.
-u únicamente procede a la copia si la fecha del archivo origen es posterior a la del destino.
-v muestra mensajes relacionados con el proceso de copia de los archivos.
Descripción
El comando cp copia un archivo a otro. También puede copiar varios ficheros en un directorio determinado.
Ej.
cp manual_linux_v1 ../../../doc/linux
En este ejemplo copia el archivo manual_linux en un directorio dos niveles más arriba del actual, en el directorio doc/linux
mv
Propósito
Modifica el nombre de los archivos y directorios moviéndolos de una ubicación a otra.
Sintaxis
mv [Opciones] fuente destino
Opciones
-d hace una copia de seguridad de los archivos que se van a mover o renombrar.
-f elimina los archivos sin solicitar confirmación.
-v pregunta antes de sobreescribir los archivos existentes.
Descripción
El comando mv se puede utilizar para modificar el nombre o mover un archivo de un directorio a otro. Trabaja tanto con archivos como con los directorios.
Ej.
mv manual_linux_v1 manuales/linux
mv manual_linux_v1 manual_linux_v1_doc
mv manual_linux_cap1 manual_linux_cap2 manual_linux_cap2 /manual/linux
rm
Propósito
Elimina uno más archivos (puede eliminar un directorio completo con la opción –r).
Sintaxis
rm [Opciones] archivos
Opciones
-f elimina todos los archivos sin preguntar.
-i pregunta antes de eliminar un archivo.
-r elimina todos los archivos que se encuentran en un subdirectorio y por último borra el propio subdirectorio.
-v muestra el nombre de cada archivo antes de eliminarlo.
Descripción
El comando rm se utiliza para borrar los archivos que se le especifiquen. Para eliminar un fichero ha de tener permiso de escritura en el directorio en el que se encuentra.
Ej.
rm manual_linux_v1
rm –r documentos/
mkdir
Propósito
crear directorios.
Sintaxis
mkdir [Opciones] nombre_directorio
Opciones
-m modo, asigna la configuración de permisos especificada al nuevo directorio.
-p crea directorios emparentados (en caso de que no existan).
Descripción
El comando mkdir se utiliza para crear un directorio especifico.
Ej.
mkdir manuales
rmdir
Propósito
Elimina un directorio (siempre y cuando esté vacío).
Sintaxis
rmdir [Opciones] directorio
Opciones
-p elimina cualquier directorio emparentado que este vacío.
Descripción
El comando rmdir elimina los directorios vacíos. Si tiene algún contenido, tendrá que utilizar el comando rm –r para eliminar el directorio y sus contenidos.
Ej.
rmdir manual
ls
Propósito
Listar el contenido de un directorio.
Sintaxis
ls [Opciones] [nombre_directorio o archivo]
Opciones
-a muestra todos los archivos. Incluyendo a los ocultos.
-b muestra los caracteres no imprimibles de los nombres de los ficheros utilizando un código octal.
-c ordena los archivos de acuerdo con la fecha de creación.
-d muestra una lista en la que aparecen los directorios como si fuesen archivos (en vez de mostrar su contenido).
-f muestra el contenido del directorio sin ordenar.
-i muestra información de i-node.
-l muestra la lista de archivos con formato largo y con información detallada (tamaño, usuario, grupo, permisos etc.).
-p añade un carácter al nombre del archivo para indicar a que tipo pertenece.
-r coloca la lista en orden alfabético inverso.
-s muestra el tamaño (kb) de cada archivo próximo al solicitado.
-t ordena la lista de acuerdo con la fecha de cada fichero.
-R muestra una lista con el contenido del directorio actual y de todos sus subdirectorios.
Descripción
El comando ls muestra el contenido de un directorio determinado. Si se omite el nombre del directorio, mostrará el contenido del directorio en el que se encuentre. Por defecto, ls no muestra el nombre de los archivos cuyo nombre comience con un punto; para verlos tendrá que utilizar la opción –a.
Ej.
ls –a
ls –l
ls –la
cd
Propósito
Cambiar de directorio.
Sintaxis
cd [directorio]
Opciones
Ninguna
Descripción
Si escribe cd sin ningún nombre de directorio como argumento, se cambiará al directorio home del usuario. En cualquier otro caso se moverá al directorio indicado, si existe.
pwd
Propósito
Mostrar la ruta del directorio de trabajo actual.
Sintaxis.
pwd
Opciones
Ninguna
Descripción
El comando pwd imprime el directorio de trabajo (aquel en el que actualmente se está trabajando).
chmod
Propósito
Modifica los permisos de uno o más archivos o directorios.
Sintaxis
chmod [Opciones] [permiso_descripción] archivo
Opciones
-c muestra los archivos a los que se les han modificado los permisos.
-f hace que no aparezca en pantalla ningún mensaje de error.
-v muestra los cambios efectuados en los permisos de archivos.
-R cambia los permisos de los archivos de todos los subdirectorios.
Permisos_descripciónQuien Acción Permiso
Quien Acción Permiso u: usuario g: grupo
o: otros
a: todos
+: agregar -: quitar
=: asignar
r: lectura w: escritura
x: ejecutar
s: ajustar con el ID del usuario.
Ej.
chmod u+xr manual_linux
El usuario tendrá los permisos de lectura y ejecución sobre el archivo manual_linux
Descripción
Para utilizar eficazmente el comando chmod, debe especificarse la configuración de los permisos de acuerdo a la tabla de permisos_descripción.
Por ejemplo para que todos tengan permiso de lectura en un determinado archivo se tipea, chmod a+r nombre_archivo. También se podría haber tipeado chmod u=r,g=r,o=r nombre_archivo.
Otra forma de modificar los permisos es a través de un número octal de 3 cifras una cifra por cada grupo de permisos, este número surge de realizar la suma de los permisos que se les quiere asignar de acuerdo a los siguientes valores:
Permiso de lectura r = 4
Permiso de escritura w = 2
Permiso de ejecución x = 1
Y si no se le concede cualquier permiso el valor asignado es 0.
El formato para utilizar chmod especificando los permisos por medio de números es el siguiente.
chmod permiso_usuario permiso_grupo permiso_otros
Ejemplo, supongamos que creamos el archivo permiso.txt y queremos que el usuario tenga todos los permisos, el grupo los permisos de lectura y ejecución y finalmente que el resto de los usuarios tenga sólo el permiso de ejecución.
Para el usuario: lectura r = 4, escritura w = 2, ejecución x =1 ; sumados = 7
Para el grupo: lectura r= 4, escritura w = 0, ejecución x = 1; sumados = 5
Para el resto de los usuarios: lectura r = 0; escritura w = 0, ejecución x = 1; sumados = 1
Entonces el comando seria: chmod 751 permisos.txt
En la lista detallada de los archivos de un directorio (usando el comando ls), los permisos de lectura escritura y ejecución del usuario, grupo y otros se mostrarán a través de la secuencia rwxrwxrwx, cuando algún permiso no está activado aparece un guión en su reemplazo.
cat
Propósito
Muestra el contenido de un archivo utilizando la salida estándar (pantalla).
Sintaxis
cat [-benstvA] archivos
Opciones
-b números de líneas que no estén en blanco.
-e muestra el final de una línea (como $) y todos los caracteres no imprimibles.
-n numera todas las líneas de salida, comenzando por el 1.
-s sustituye varias líneas en blanco por una sola.
-t muestra las tabulaciones como ^l.
-v muestra los caracteres no imprimibles.
-A muestra todos los caracteres ( incluidos los no imprimibles).
Descripción
Normalmente, cat se utiliza para mostrar el contenido de un archivo o para concatenar varios dentro de un mismo fichero. Por ejemplo,
cat archivo1, archivo2, archivo3 > todo combina los tres archivos dentro de uno solo llamado todo.
find
Propósito
Muestra una lista con los archivos que coinciden con un criterio especifico.
Sintaxis
find [ruta] [opciones]
Opciones
-depth procesa, en primer lugar, el directorio en el que se encuentra y luego sus subdirectorios.
-maxdepyh n restringe la búsqueda a n niveles de directorios.
-follow procesa los directorios que se incluyen dentro de los enlaces simbólicos.
-name modelo localiza los nombres de los archivos que coinciden con el modelo propuesto.
-ctime n localiza los nombres de los archivos creados n días atrás.
-user nombre_usuario nombre_usuario localiza los archivos pertenecientes al usuario especifico.
-group nombre_grupo localiza los archivos pertenecientes al grupo específico.
-path ruta localiza a los archivos cuya ruta coincide con el modelo propuesto.
-perm modo localiza los archivos con los permisos especificados.
-size +nK localiza los archivos cuyo tamaño ( en kilobytes) es mayor de especificado.
-print imprime el nombre de los archivos que encuentra.
-exec comando [opciones] {} \; ejecuta el comando especificado analizando el nombre del archivo localizado.
Descripción
El comando find es de gran utilidad cuando se quiere localizar todos los archivos que coinciden con algún criterio. Si escribe find sin ningún argumento, la salida mostrará un listado en el que aparecen los archivos de todos los subdirectorios de la carpeta en la que se encuentre.
Para ver todos los archivos cuyo nombre termine con .gz, tendrá que escribir:
find . -name “*.gz “.
Para buscar a partir del directorio /usr/doc todos los archivos con extensión bak y eliminarlos, utilizar el comando:
find /usr/doc -name “*.bak” -exec rm -f {} \;
en donde la secuencia {} se substituirá por el nombre completo de cada archivo encontrado.
grep
Propósito
Busca en uno o más archivos las líneas que coincidan con una expresión regular (modelo de búsqueda).
Sintaxis
grep [opciones] modelo archivos
Opciones
-N muestra N líneas que contienen el modelo de búsqueda señalado.
-c muestra el número de líneas que contienen el modelo de búsqueda.
-f archivo lee las opciones del archivo especificado.
-i ignora letras
-l muestra los nombres de los archivos que contienen un modelo.
-q devuelve el número de línea siguiente a aquellas en las que se encuentra el modelo de búsqueda.
-v muestra las líneas que no contienen el modelo de búsqueda.
Descripción
El comando localiza el modelo de búsqueda en los archivos especificados. El modelo es una expresión regular en los archivos especificados que tienen sus propias reglas. Generalmente se utiliza para buscar una secuencia de caracteres en uno o más archivos de texto.
Ejemplo
grep Juan ListadoDeAlumnos.txt
OTROS COMANDOS DE LINUX
man: Muestra por pantalla secciones del manual del usuario.
Formato: man Nombre del comando.
Ej: man ls.
mesg: Habilita o deshabilita la comunicación entre usuarios por medio de write.
Formato : mesg [n/y].
lpr: Imprime el contenido de un archivo.
Formato: lpr [Opción] Archivo
Se consideran las principales opciones:
-P cola Indica la cola de impresión a utilizar.
-n<número>: Indica la cantidad de copias a imprimir, por defecto siempre es 1.
-R: Remueve el archivo después de realizada la impresión.
tree: Lista todos los directorios a partir del directorio actual o del directorio indicado.
Formato: tree [Directorio].
tty: Muestra el número de la terminal donde está trabajando el usuario.
Formato: tty
who: Visualiza los usuarios que están activos en el sistema, sin ningún tipo de argumento éste comando muestra los nombres de usuario, número de terminal y horario de conexión por cada usuario activo del sistema. Utilizando los argumentos who am i el comando muestra con que nombre de usuario está usted conectado.
Formato: who [Opción]
write: Envía mensajes a otros usuarios hasta que se digite “Control D”. La recepción de estos mensajes puede ser deshabilitada por el usuario utilizando el comando MESG.Formato: write Usuario Terminal