Software">
Nothing Special   »   [go: up one dir, main page]

Gestión de Archivos y Directorios en Linux

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 36

Índice

1. El sistema de archivos: UNIX / Linux.


2. Árbol de directorios
3. Tipos de archivos y directorios
4. Gestión de archivos y directorios: estructura, rutas y
metacaracteres
5. Comandos de gestión de directorios: ls, pwd, cd,
mkdir y rmdir
6. Comandos de gestión de archivos y directorios: cp,
mv y rm
7. Comandos de gestión de archivos: touch, more,
less, cat y grep
8. Redireccionamientos de comandos

S.O. Linux. Archivos y directorios 2


1. El sistema de archivos: UNIX / Linux.
• El sistema operativo administra la información de los dispositivos de
almacenamiento mediante procedimientos y estructuras de datos llamado sistema
de archivos.
• Cada sistema operativo suele tener su sistema de archivos. En Linux los más
conocidos son ext2, ext3 y ext4. Actualmente se emplea ext4.
• Las últimas distribuciones reconocen y utilizan otros sistemas de archivos como
NTFS, FAT, CDFS, UDF…
• Para ver los sistemas de archivos de los dispositivos se llega mediante
Sistema->Administración->Monitor del sistema (pestaña sistema de archivos)

• El sistema de ficheros está enfocado al concepto de fichero. En Linux todo es tratado


como un fichero: ficheros regulares, directorios, dispositivos de bloques y de
caracteres, enlaces, sockets y tuberías.
S.O. Linux. Archivos y directorios 3
1. El sistema de archivos: UNIX / Linux.
• La estructura del sistema de ficheros es jerárquica.
• Comienza en la raíz, simbolizada por /
• Reglas para los nombres de archivos y directorios:
 Se distinguen mayúsculas y minúsculas.
 No se permiten los caracteres ! # & ( ) “ ; | < > @ $ { } * ? \ +
 Ni espacios en blanco.
 No es obligatorio usar una extensión para los nombres de archivos.
• Los directorios se tratan como
archivos especiales que
almacenan otros archivos.
• Permite crear, borrar y acceder a
los ficheros sin conocer el lugar
exacto (físico) de su localización.
Las unidades físicas son ficheros
que los referencian.

S.O. Linux. Archivos y directorios 4


2. Árbol de directorios
Directorios fundamentales del sistema de archivos:
• /bin: Comandos ejecutables esenciales para el sistema.
• /boot: Archivos usados por el arranque.
• /dev: Archivos especiales asociados a los dispositivos hardware.
• /home: Archivos de las carpetas de perfil de cada usuario creado.
• /lib: Librerías usadas por las aplicaciones.
• /usr: Almacena la mayoría de los programas de un sistema Linux.
• /usr/bin: Almacena los comandos para los usuarios.
• /var: Archivos variables creados por aplicaciones como logs, correo, etc.
• /var/lock: Ficheros de bloqueos para indicar que un recurso no está disponible.
• /var/log: Ficheros de información de sucesos.
• /etc: Archivos de configuración del sistema.
• /sbin: Comandos esenciales reservados al administrador
• /tmp: Directorio temporal para las aplicaciones en ejecución

S.O. Linux. Archivos y directorios 5


2. Árbol de directorios
Más directorios del sistema de archivos:
• /media: Contiene las unidades físicas montadas como discos duros,
unidades de dvd, pendrives, etc.
• /mnt: Directorio donde se montan sistemas de archivos de forma
temporal.
• /opt: Directorio donde poder instalar aplicaciones que no están en los
repositorios y que no se instalan automáticamente.
• /proc: Archivos que reciben o envían información al kernel. Permite
obtener información de los procesos en ejecución.
• /root: Directorio personal del superusuario o administrador del
sistema.

S.O. Linux. Archivos y directorios 6


2. Árbol de directorios: estructura

S.O. Linux. Archivos y directorios 7


3. Tipos de archivos y directorios
• Shell scripts: Contienen órdenes o comandos que se ejecutan en la interfaz de
comandos. Algunos se ejecutan al iniciar el sistema, otros pueden ser
construidos por el usuario para mecanizar tareas que se ejecutan con
frecuencia.
• Ficheros de configuración: Permiten definir parámetros a la hora de arrancar
el sistema, servicios y sesiones de usuario. Algunos de los más destacables:
 /etc/default/grub: Configuración del gestor de arranque grub.
 /etc/fstab: Información de los dispositivos que se montan en el arranque del sistema.
 /etc/apt/sources.list: Lista de repositorios de descarga de software para instalar y
actualizaciones del sistema operativo.
 /etc/X11/xorg.conf: Configuración del entorno gráfico
 /etc/hosts: Resolución de nombres de equipos a direcciones IP.
 /etc/profile: Programas de arranque y entorno global del sistema.
 /etc/sudoers: Permite a usuarios comunes ejecutar comandos que requieren
privilegios de superusuario.
 /etc/netplan: Para configurar la red.

S.O. Linux. Archivos y directorios 8


3. Tipos de archivos y directorios
Archivos ordinarios: Contienen la información de cada
usuario y del sistema.
Pueden ser de dos tipos:
• Tipo ASCII: Contienen caracteres y se pueden ver
desde un terminal o una aplicación para textos.
• Binarios: Son codificados según el formato de
archivo que contengan y deben ser vistos con la
aplicación adecuada.
Enlaces:
• Físicos (vínculos físicos): Son un segundo nombre
asignado a un archivo. Una modificación en el
archivo se ve reflejado para todos los enlaces.
• Enlaces simbólicos (vínculos simbólicos): Asignan
más de un nombre a un archivo. Sólo contiene el
nombre de otro archivo. Son referencias.

S.O. Linux. Archivos y directorios 9


3. Tipos de archivos y directorios
• Directorios: Contienen referencias a otros archivos, más información de
archivos, subdirectorios, vínculos, etc.
• Archivos especiales: Representan dispositivos físicos que son tratados como
archivos ordinarios. Permite trabajar con el hardware del mismo modo que con
los archivos regulares. Se almacenan en /dev
• Ficheros ocultos: Su nombre comienza por un punto. A destacar los que se
ejecutan al comienzo y finalización de cada sesión de usuario.

S.O. Linux. Archivos y directorios 10


4. Gestión de archivos y directorios: rutas
• Directorios Especiales:
/ Directorio inicial de la estructura de directorios. A partir de ahí se
almacenan el resto de directorios y archivos independientemente de la
partición.
. Directorio actual, referencia al directorio en que estamos
.. Directorio especial que referencia al directorio padre del directorio actual
~ Directorio personal de cada usuario
• Rutas absolutas y relativas
 Absoluta: Se hace referencia al directorio o archivo desde el directorio
raíz. Comienza con el carácter /
 Relativa: Se hace referencia al directorio o archivo desde el directorio
actual.

S.O. Linux. Archivos y directorios 11


4. Gestión de archivos y directorios: rutas
• Ejemplos de rutas relativas
 Suponiendo que estoy en $HOME (/home/usuario). Es igualmente válido
especificar directamente la carpeta Descargas o con el directorio especial
"actual" delante (carácter punto)
ls Descargas
cp ./Descargas/copia.zip ../usuario2/Documentos

• Ejemplos de rutas absolutas


 Suponiendo que estoy en $HOME (/home/usuario). En este caso se indican
todos los directorios desde raíz, o algún directorio especial que hace
referencia a una ruta absoluta como es el caso de ~
ls /home/usuario/Descargas
cp ~/Descargas/copia.zip /home/usuario2/Documentos

S.O. Linux. Archivos y directorios 12


4. Gestión de archivos y directorios:
metacaracteres
METACARACTERES
En Linux se utilizan caracteres con un significado especial para búsquedas y
operaciones sobre archivos y directorios (ls, cp, mv, rm, etc).
* cualquier serie de caracteres ( 0 o más)
? cualquier carácter ( uno)
[ …] cualquiera de los caracteres encerrados. Podemos incluir un conjunto de
caracteres o un rango de caracteres, pero el corchete sustituye sólo uno.
Se utiliza el orden de la tabla ASCII. Los extremos del rango deben ser un solo
carácter.
[bf] bo f
[b-f] b,c,d, e o f
[!bf ] ni b ni f
a[1-5] a1,a2,a3,a4,a5
a1[xy]3 a1x3,a1y3
a* a seguido de cero a n caracteres (que empiece por a)
a?c abc, adc, aec (es decir, a luego un caracter y c al final)
S.O. Linux. Archivos y directorios 13
5. Comandos de gestión de directorios: ls
ls (list)
Muestra información sobre ficheros y directorios. Sin opciones muestra solo el
nombre de los archivos y directorios.
• Sin parámetros muestra el directorio actual.

• También se puede especificar consultar un directorio que se especifica como


parámetro, ya sea con rutas absolutas o relativas.

S.O. Linux. Archivos y directorios 14


5. Comandos de gestión de directorios: ls
ls (list)
ls [opciones] [ruta directorio o archivo (absoluta o relativa)]
Opciones
-F Permite distinguir entre ficheros y directorios (los directorios llevan el
carácter / detrás y los ejecutables *, entre otros)

-a Muestra los archivos y directorios ocultos (los que empiezan por punto).

S.O. Linux. Archivos y directorios 15


5. Comandos de gestión de directorios: ls
ls (list)
ls [opciones] [argumentos]
-R Muestra también el contenido de los subdirectorios por debajo del actual de
forma recursiva

S.O. Linux. Archivos y directorios 16


5. Comandos de gestión de directorios: ls
ls (list)
ls [opciones] [argumentos]
-R Otra opción gráfica para ls -R es el comando tree. No viene por defecto,
pero se puede instalar directamente. Devuelve los subdirectorios de una
manera más gráfica e intuitiva para el usuario.

S.O. Linux. Archivos y directorios 17


5. Comandos de gestión de directorios: ls
ls (list)
ls [opciones] [argumentos]
 Opciones

-l Información en formato largo

S.O. Linux. Archivos y directorios 18


5. Comandos de gestión de directorios: ls
• Respecto al comando anterior ls -l, cada archivo se identifica con 10 caracteres,
el primero indica el tipo y los restantes sus permisos.
• El primer carácter puede tener estas opciones:
Permiso Significado Permiso Significado
- Archivo b Archivo de bloques
d Directorio c Archivo de caracteres

l Enlace p Archivo de cauce

• Los siguientes nueve son los permisos para los usuarios del sistema.
• Se forman con tres grupos asignados al propietario, al grupo y al resto en este
orden.
• Cada grupo es una combinación de las letras r, w, x ó - que indican
Permiso Significado Permiso Significado
r Lectura - Sin permiso
w Escritura
x Ejecución
S.O. Linux. Archivos y directorios 19
5. Comandos de gestión de directorios: ls
ls (list)
ls [opciones] [argumentos]

Otras opciones
-d Muestra solo el nombre de los subdirectorios y no su contenido. Es útil
cuando queremos filtrar directorios.
-t Información ordenada por día y hora de creación (de mayor a menor).
-r Información ordenada en orden alfabético inverso.
-s Muestra el tamaño. En esta opción y todas las que muestran el tamaño
como -l se puede especificar la unidad con --block-size (sus valores posibles
es la inicial de cada unidad, es decir, K,M,G,T, etc).
Ejemplo: ls -s --block-size=M (en este caso en unidades de Megabytes)

Patrones
Podemos añadir el carácter * si queremos buscar patrones (por ejemplo ls d* para
buscar ficheros que empiecen por d en el directorio actual).
S.O. Linux. Archivos y directorios 20
5. Comandos de gestión de directorios: ls
Ejemplo de patrones
A tener en cuenta que el comando ls sobre un directorio muestra el contenido. Por
tanto, si utilizamos un patrón nos mostrará el contenido de todos aquellos que lo
cumplan.

Si queremos solamente filtrar los directorios que empiezan por “D” sin mostrar su
contenido, entonces sería útil la opción -d

S.O. Linux. Archivos y directorios 21


5. Comandos de gestión de directorios: pwd y cd
• pwd (print working directory)
Muestra la ruta absoluta del directorio actual
• cd (change directory)
Cambiar de directorio
cd [ruta_directorio (absoluta o relativa)]

S.O. Linux. Archivos y directorios 22


5. Comandos de gestión de directorios: mkdir
• mkdir (make directory)
Crear directorios
mkdir [opciones][directorio/s]

Opciones
-p si no existen los directorios intermedios, se crean también

Ejemplos:

mkdir /home/user/dir_1 (se crea dir_1 en la ruta absoluta /home/user)

mkdir dir_1 dir_2 (se pueden crear varios directorios a la vez, en este
caso en el directorio actual al emplear rutas relativas)

mkdir -p food/fruit/citrus/oranges (se crean los directorios intermedios


si no existen. Sin –p, si no existen los directorios dará un error)

S.O. Linux. Archivos y directorios 23


5. Comandos de gestión de directorios: rmdir
• rmdir (remove directory)
Borra directorios, solo si están vacíos
rmdir [opciones] directorio/s

Opciones
-p borra todos los directorios vacíos que encuentra en una ruta

Ejemplos:

rmdir directory (borra el directorio situado en el actual si no está


vacío)

rmdir -p dir1/dir2/dir3 (borra todos los directorios, siempre que no


estén vacíos. Empieza de derecha izquierda por dir3, es decir, si dir3
está vacío lo borra, pero si dir2 no lo está entonces para la ejecución
del comando)

S.O. Linux. Archivos y directorios 24


6. Comandos de gestión de archivos y
directorios: cp
• cp (copy)
Copia uno o varios ficheros en otro fichero o en un directorio
cp [opciones] fichero/s destino

Opciones:
-f fuerza la copia aunque exista el fichero destino. Se suele hacer por defecto.
-i pregunta antes de sobrescribir.
-R | -r Copia los directorios por debajo del actual, de forma recursiva (por defecto no
se copian directorios).

Ejemplos:
cp archivo ../(copia al directorio anterior)
cp archivo directorio/nuevo_nombre (copia y además cambia el
nombre del archivo en el destino)
cp –R carpeta_origen destino (copia la carpeta en "destino",
incluyendo el nombre de la misma, archivos y subcarpetas)

S.O. Linux. Archivos y directorios 25


6. Comandos de gestión de archivos y
directorios: mv
• mv (move)
Mueve uno o más ficheros a otros ficheros o directorios (no hace falta -R como en
el comando cp). Puede ser usado para renombrar ficheros.
mv [opciones] fichero/s destino
-u Mueve solo si el archivo no existe en el destino o es anterior.
-i Pregunta antes de sobreescribir.
-f Fuerza la sobreescritura.

Ejemplos:
mv -u archivo ../(mueve al directorio padre, solo si no
existe un archivo con fecha anterior)
mv archivo directorio/nuevo_nombre (mueve y además cambia el
nombre del archivo en el destino)
mv carpeta_origen destino (mueva la carpeta a "destino",
incluyendo el nombre de la misma, archivos y subcarpetas.
Sin opción -R a diferencia de cp)
S.O. Linux. Archivos y directorios 26
6. Comandos de gestión de archivos y
directorios: rm
• rm (remove)
Borra ficheros y directorios
rm [opciones] [argumentos]

Opciones
-i Pregunta antes de borrar cada fichero o directorio.
-r | -R Borra los directorios y ficheros contenidos en los directorios por
debajo del actual, de forma recursiva.
-rf Borra el directorio actual y subdirectorios, sin preguntar.

Ejemplos
rm archivo (borra un archivo del directorio actual)
rm /etc/default/grub (borra sin preguntar ignorando
argumentos como i)
rm -rf Carpeta (borra la carpeta y subdirectorios sin
preguntar. No recomendable en carpetas del sistema)
S.O. Linux. Archivos y directorios 27
7. Comandos de gestión de archivos: cat
• cat (catenate)
Muestra el contenido de los ficheros que se le pasan como argumento
cat [opciones] fichero/s
Por defecto muestra el contenido como por ejemplo en cat fichero.txt

Otra opción es sin parámetros, que permite crear un fichero con el texto que el
usuario introduce por teclado:

cat > hello.txt


hello
world!

Se escriben tantas líneas como se desean y después CTRL+D para guardar el


contenido.

S.O. Linux. Archivos y directorios 28


7. Comandos de gestión de archivos: grep
• grep
Muestra las líneas de un fichero que contienen un cierto patrón de acuerdo con el
siguiente formato:
grep [opciones] patrón [fichero/s]
Opciones:
-i No distingue mayúsculas y minúsculas.
-v Muestra las líneas que no contienen el patrón.
-c Muestra el número de líneas que coinciden con el patrón.
-n Muestra la línea y el número de línea de cada coincidencia.

Además, el patrón acepta las siguientes expresiones regulares que varían


ligeramente respecto a las empleadas en las rutas absolutas y relativas:
. Reemplaza un caracter [...] Una lista o rango de caracteres
* Repite el caracter anterior [^..] Excluye la lista o rango de caracteres
^ Texto al comienzo
$ Texto al final
S.O. Linux. Archivos y directorios 29
7. Comandos de gestión de archivos: grep
• grep

Ejemplos
grep "^t" /etc/passwd
Busca en /etc/passwd las líneas que empiezan por t

grep "t$" /etc/passwd


Busca en /etc/passwd las líneas que acaban en t

grep -v "root" /etc/passwd


Busca todas las líneas que no contienen “root” en /etc/passwd

Más ejemplos:
https://docs.oracle.com/cd/E19620-01/805-7644/6j76klop3/index.html

S.O. Linux. Archivos y directorios 30


7. Comandos de gestión de archivos: touch,
more y less
• touch
Actualiza la fecha de acceso y modificación de ficheros. Si no existe, lo crea vacío.
touch [opciones] fichero. Opción por defecto para crear fichero vacío: touch file
Opciones:
-c No crea ningún fichero, solo modifica fechas para ficheros existentes.
-t Permite modificar a una fecha concreta en formato AAAAMMDDmmHH
touch -t 201911221200 testfile
• more
Muestra el contenido de los ficheros de forma paginada. Se usa la barra espaciadora
o ENTER para pasar la página. Se usa “q” para finalizar
more fichero/s
• less
Igual que more, pero pudiendo utilizar las flechas de cursor y volver atrás
less fichero/s

S.O. Linux. Archivos y directorios 31


8. Redireccionamientos de comandos
• La salida estándar de las órdenes es el terminal (monitor) y la entrada
estándar el teclado.
• Los dispositivos son:
/dev/stdin entrada estándar
/dev/stdout salida estándar
/dev/stderr error estándar
/dev/null dispositivo nulo
• Se pueden direccionar a otro fichero mediante:
< direcciona la entrada estándar
> direcciona la salida estándar
2> direcciona el error estándar
>> direcciona la salida estándar concatenándola al contenido existente
2>> direcciona el error estándar concatenándolo al contenido existente

S.O. Linux. Archivos y directorios 32


8. Redireccionamientos de comandos
• Ejemplos:
cat archivo1 archivo2 > archivo3
Crea el archivo3 con la concatenación de archivo1 y archivo2

ls –l asfasf 2>> lista_direct


Concatena en el fichero “lista_direct” los errores obtenidos en “ls-l”

Si queremos redireccionar al mismo tiempo la salida de error y estándar


es posible con los operadores &> y &>> (el funcionamiento es el mismo y
aquel que incluye &>> sirve para no sobrescribir el fichero y añadir el
contenido al final).
ls /home/user1/carpeta &> archivo1

S.O. Linux. Archivos y directorios 33


8. Redireccionamientos de comandos
• Además, se puede encadenar la salida de un comando para que sea la
entrada del siguiente si el parámetro es un fichero. Esto se hace mediante
pipes (tuberías). El caracter usado es |
ls /home/user1/carpeta | grep "fichero"

El comando anterior muestra aquellos ficheros o carpetas con el nombre


“fichero”. En este caso grep no necesita un fichero como parámetro, ya
que se reemplaza por la salida del comando anterior.

A continuación se incluye otro ejemplo que sirve para mostrar


gradualmente la salida de ls -R
ls -R / | more

S.O. Linux. Archivos y directorios 34


8. Redireccionamientos de comandos
• Otra opción es el comando tee que permite redireccionar con tuberías la
salida de un comando y a su vez mostrar el resultado por pantalla (con
los operadores > y >> solo se muestra el resultado en el fichero destino).
grep "texto" fichABC | tee fichsal

• Si queremos concatenar de forma parecida a >> entonces necesitamos la


opción -a.
grep "texto" fichABC | tee -a fichsal

• Para la salida de error, el operador sería |&


grep "texto" fichABC |& tee fichsal (se añade -a si
queremos concatenar)

S.O. Linux. Archivos y directorios 35


8. Redireccionamientos de comandos
• Otra alternativa útil es redireccionar el dispositivo /dev/null. Es un
archivo especial que descarta toda la información. Es especialmente
interesante cuando queremos descartar los errores. Por ejemplo:
ls –l noexiste 2> /dev/null

S.O. Linux. Archivos y directorios 36

También podría gustarte