Gestión de ficheros y directorios

Gestión de ficheros y directorios

ls

Viene de list.

$ ls

Proporciona en pantalla un listado que nos muestra todos los archivos contenidos en el directorio en el que estemos. Algunas versiones o modos de conexión a Linux nos mostrarán esta información en distintos colores. Por defecto las listas vienen en orden alfabético (mayúsculas y números primero). Si obtenemos una lista que exceda de la pantalla, podemos usar Shift+RePag y Shift+AvPag para movernos por ella. Si lo usamos con la opción -l obtenemos mas información acerca de los ficheros, y con la opción -a se mostrarán los ficheros ocultos. Con man ls obtendremos una lista completa de opciones.

cd

Viene de change directory.

$ cd nombre__del_directorio

Es obvio ver que esta orden nos permitirá cambiar de directorio. Para ir al directorio padre, es decir, el que aloja al directorio actual, tecleamos:

$ cd ..

Es importante dejar el espacio entre la orden y el parámetro del nombre del fichero (en este

caso ..).

Ahora que podemos movernos por la estructura de directorios de todo el disco duro, es hora de aprender algunos conceptos especiales acerca de los directorios. Ya hemos visto que el carácter “~” era el carácter que nos indicaba que nos encontramos en nuestro directorio raíz o home. Usándolo del siguiente modo:

$ cd ~

Da igual en qué directorio nos encontremos, seremos trasladados a nuestro directorio home. Otra forma de hacer esto es usando simplemente la orden sin ningún modificador.

pwd

Viene de Print Working Directory.

$ pwd

Esta orden nos indica la ruta o path del directorio en el que nos encontramos. La utilidad radica en que en ocasiones no observamos toda la ruta actual.

mkdir

Viene de make directory.

$ mkdir nombre_del__directorio

Hemos creado un directorio. Podemos entrar y crear otro directorio y obtener un árbol, o llenarlo de ficheros.

Para crear un directorio directamente dentro de otro que todavía no existe en uno solo tenemos la opción -p que crea directorios en cadena.

$ mkdir -p musica/bandas_sonoras/closer creará el directorio musica dentro del actual, y el directorio bandas_sonoras dentro de musica y el directorio closer dentro bandas_sonoras.

rm

Viene de Remove.

$ rm nombre_del_fichero

Este comando elimina ficheros.

También se puede usar para eliminar directorios y todo lo que contengan con el parámetro -r. Con el parámetro -f forzamos que no pregunte antes de borrar.

Ejemplo:

$ rm -rf nombre_de_fichero

MUCHO OJO con:

$rm ~rf / o $rm ~rf

La aplicación de este comando concreto, sin especificar fichero y con los modificadores -r y -f borrará todo lo que tenga el sistema. Es decir, nos lo cargamos. Ejemplo.

rmdir

Viene de Remove Directory.

$ rmdir nombre_del_directorio

Este comando se encarga de borrar directorios. Sólo puede borrar directorios que estén vacíos. El sistema nos preguntará si estamos seguros de querer borrar ese directorio o nos avisará si no podemos borrarlo porque no está vacío. Para borrar los directorios que contenga podemos escribir su ruta y referirnos a todos ellos mediante el comodín * que sustituya el nombre de todos:

$ rmdir nombre_del_directorio/*

file

$ file nombre_de_fichero

Muestra el tipo de fichero.

mv

Viene de Move.

$ mv ruta_origen ruta__destino

Este comando moverá un fichero desde el lugar que indiquemos como origen hasta el lugar que indiquemos como destino. Si no indicamos ruta de origen, se supondrá que el archivo a mover se encuentra en el directorio en el que estamos. En cuanto al directorio de salida, si no indicamos nada dejará el fichero donde está, sin embargo, si cambiásemos el nombre de destino del fichero, lo renombraría simplemente. (Es una buena manera de renombrar archivos).

cp

Viene de Copy.

$ cp ruta_origen ruta_destino

La orden cp mantiene el origen en su lugar mientras que la orden mv elimina el archivo origen.

du

Se usa para saber el tamaño de los directorios/ficheros.

$ du -sh *

5,7M lawn5z2g.pdf

Con el modificador -s lo que hacemos que excluya los subdirectorios, y con el modificador -h le decimos que nos imprima el tamaño del archivo en un formato que el ser humano pueda entender. Además con el * le estamos diciendo que liste todos los ficheros contenidos.

ln

Utilizamos este comando para crear enlaces duros y simbólicos a algún fichero.

$ ln nombre_del_fichero Nombre_del_enlace (El nombre del enlace puede estar inserto dentro de una ruta concreta, p.e. /home/usuario/Nombre_del_enlace).

Los enlaces ofrecen la posibilidad de dar a un único fichero múltiples nombres. Estos ficheros van a ser identificados mediante el sistema operativo por su numero de inodo, el cual se genera de forma semialeatoria. Solo para ficheros y sólo en particiones Linux.

Un inodo es un enlace que resulta el único identificador del fichero para el sistema de ficheros. Un directorio, por tanto, será una lista de números de inodo con sus correspondientes nombres de fichero. Cada nombre de fichero en un directorio es un enlace a un inodo particular.

  • Enlaces duros: Estos enlaces se denominan enlaces duros (hard links) porque directamente crean el enlace al inodo1. También hay que tener en cuenta que solamente podremos crear enlaces duros entre ficheros del mismo sistema de ficheros; los enlaces simbólicos no tendrán este tipo de restricciones. Recordad que podíamos ver el número de enlaces duros que tenía un archivo usando el comando ls y el modificador -l. (Es la segunda columna :D)

  • Enlaces simbólicos: permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo, es decir, en realidad lo que hacemos es enlazar directamente al nombre del fichero. Esto podría parecerse bastante a lo que Windows nos tiene acostumbrados.

    Con la orden ln -s creamos un enlace simbólico a un fichero. Por ejemplo:

    $ ln -s archivo archivo2.

    Hay que tener en cuenta que el nombre del enlace simbólico no soporta rutas completas, por lo que para crearlo, será imprescindible situarse dentro del directorio en el que queramos que quede colocado dicho enlace.

chmod

Viene de change mode. Cambia los permisos de los archivos.

$ chmod 754 archivo1

$ chmod u+x archivo2

$ chmod o-w archivo3

En el primer ejemplo, como recordaréis por la 2ª parte del curso, estamos dando permisos al archivo1 de:

  • Total libertad de ejecución, lectura y escritura al dueño del archivo.

  • Permisos de lectura y ejecución al grupo al que pertenece el archivo.

  • Permiso de lectura al resto de usuarios que NO están en el grupo.

En el segundo ejemplo, vemos una forma diferente de otorgar permisos, ya que podemos otorgar permisos de forma más sencilla que con la codificación octal que hemos visto anteriormente. Podemos otorgar permisos al dueño, al grupo, a otros usuarios incluso a todos a la vez con los modificadores siguientes:

u – dueño: dueño del archivo o directorio

g – grupo: grupo al que pertenece el archivo

o – otros: todos los demás usuarios que no son el dueño ni del grupo

a – todos: incluye al dueño, al grupo y a otros

Luego, con los modificadores siguientes podemos otorgar o quitar permisos a cada uno de los actores que hemos mencionado:

  • r: permisos de lectura.

  • w: permisos de escritura.

  • x: permisos de ejecución.

Así pues en el ejemplo 2, vemos que se le han otorgado permisos de ejecución al dueño del archivo en cuestión. Así como en el ejemplo 3 hemos quitado permisos de escritura al resto de usuarios. Como habréis supuesto, para otorgar permisos usamos el símbolo de adición “+” y para quitarlos o revocarlos usamos el símbolo se sustracción “-”.

chown

Viene de “change owner”. Cambia el propietario del archivo.

# chown kuasar /home/kuasar/documento1.txt

Notar que en vez del símbolo del dólar “$”, hemos puesto la almohadilla “#” indicando así que sólo podemos cambiar este aspecto siendo root/superusuario. La nomenclatura de este es la siguiente:

  • # chown kuasar /home/kuasar/documento1.txt (en negrita nombre del usuario nuevo)

  • # chown kuasar /home/kuasar/documento1.txt (en negrita la ruta y el nombre del archivo a cambiar los permisos)

Si en vez de especificar un archivo en concreto, especificáramos tan sólo un directorio más el modificador -R, lo que haríamos es cambiar el propietario a todos los archivos y subdirectorios que se hallan en ese directorio.

# chown kuasar -R /home/kuasar/

chgrp

Viene de change group. Cambia el grupo del archivo.

# chgrp kuasar /home/kuasar/documento1.txt

Como podéis observar la nomenclatura es la misma que para chown, así que no vamos a incidir mas en ella.

Deja un comentario