Este es uno de los capítulos del tutorial El terminal. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
Ahora que ya te manejas mas o menos en el terminal, y ya sabes como navegar entre archivos, ha llegado el momento de que empieces a crear tus propios directorios y archivos. Así, en este nuevo capítulo del tutorial sobre el terminal descubrirás como gestionar archivos desde el propio terminal.
Antes de meternos a fondo, es necesario que entiendas algunos conceptos básicos en Linux, como el hecho de que todo es un archivo, y algunos aspectos mas.
Gestionar archivos
Características del sistema de archivos
Mayúsculas y minúsculas
Lo primero que tienes que tener en cuenta es que Linux distingue entre mayúsculas y minúsculas. Es decir, no es lo mismo archivo
que ArChivo
.
Archivos ejecutables
Por otro lado, así como en otros sistemas operativos la extensión de un archivo es importante, en Linux no lo es. Linux es un sistema sin extensiones. Así, en Microsoft Windows archivo.exe
es un ejecutable, en Linux, puede o no ser serlo.
Escapando caracteres
Otro aspecto que tienes que observar con especial cuidado son los espacios en los nombres de los archivos. Y es que, aunque un nombre de archivo con espacios en el mismo es perfectamente válido, cuando lo pasas a un comando lo va a interpretar como dos parámetros. Así por ejemplo, quieres crear un directorio utilizando
mkdir mis documentos
encontrarás que se han creado dos directorios, el directorio mis
y el directorio documentos
. Para evitar este pequeño inconveniente puedes utilizar simples o dobles comillas o escapar el espacio en blanco… te explico. La primera opción sería,
mkdir 'mis documentos'
La segunda opción sería,
mkdir mis\ documentos
Lo que he hecho en el segundo caso es escapar el carácter. Esto le indica al sistema operativo que tiene que tratar el carácter, a continuación del carácter de escape, como un carácter diferente. El carácter de escape es una barra invertida, y se suele utilizar con espacio, simples comillas, dobles comillas, y otros mas. Algunos típicos y muy utilizados son los siguientes,
\'
comilla simple\"
comilla doble\\
barra invertida\n
nueva línea\r
retorno de carro\t
tabuladorb
retroceso
Archivos y directorios ocultos
Otra característica realmente interesante de Linux es como define que un archivo o directorio está oculto, es decir, que no es visible en primera instancia. Cuando ejecutes la herramienta ls
no aparecerá listado.
Para poder ver los archivos y directorios ocultos debes ejecutar ls -a
.
Para ocultar archivos tienes dos opciones,
- comenzar el nombre del archivo con un punto. Es decir
miarchivo.txt
si que se verá, mientras que.miarchivo.txt
estará oculto, y solo se mostrará si ejecutasls -a
. - La siguiente es crear un arhivo llamado
.hidden
, que ya está oculto de por si, y dentro de él, listar todos los archivos que estén ocultos. En el ejemplo anterior, dentro de.hidden
nos encontraríamosmiarchivo.txt
Todo es un archivo
Si, así como lo lees, en Linux todo es un archivo. Así, un archivo es un archivo, un directorio es un archivo, tu ratón es un archivo, tu teclado es un archivo, tu monitor es un archivo… Si, todo, absolutamente todo, todo es un archivo.
Esto tiene la ventaja de que el mismo conjunto de herramientas y utilidades se puede utilizar con todos estos recursos.
En Linux hay tres tipos de archivos,
- los archivos normales que son los que contienen texto o datos binarios. Así, puedes tener archivos de texto, ejecutables, imágenes, archivos comprimidos, etc.
- los directorios, que tienen el mismo concepto que en cualquier otro sistema operativo. No son mas que un contenedor del resto de archivos, tanto los normales o regulares, como los especiales.
- especiales. Los archivos especiales se subdividen en varios a su vez,
- Archivos de bloque. Estos hacen referencia a dispositivos físicos. Puedes encontrarlos en
/dev
. Si quieres ver los archivos especiales ejecutals -l /dev | grep "^b"
. Aunque si lo ejecutas en tu docker de pruebas no te mostrará nada. - Los archivos de carácter facilitan un flujo serie de entrada o salida. Por ejemplo el propio terminal. Otro ejemplo claro es
/dev/null
. Todo lo que escribas allí lo estás desechando. - Archivos tubería ó pipe files, o FIFO. Esto de FIFO viene por aquello de First Input First Output, o lo que es lo mismo, lo primero en entrar es lo primero en salir. Es similar a una pipe, que no es mas que un encadenamiento de comandos, de forma que la salida de un comando es la entrada del otro (por eso el llamarlo pipe o tubería). Sin embargo, un pipe file es un archivo del sistema operativo, y como tal, se puede acceder a él de la misma forma. Ya entraré con mas detalle tanto en este concepto, no te preocupes ahora por ello.
- Enlaces simbólicos. Este es uno de los conceptos que mas me gustan en Linux, por las posibilidades que ofrece. Los enlaces simbólicos no es mas que una especie de puntero, que señala a otro archivo o directorio. En mi caso lo utilizo con frecuencia para la sincronización en la nube. Puesto que me permite tener el archivo apuntado en un directorio, y el enlace simbólico en el sitio que debe estar.
- Archivos de tipo socket. Este tipo de archivos se utiliza para pasar información entre diferentes aplicaciones.
- Archivos de bloque. Estos hacen referencia a dispositivos físicos. Puedes encontrarlos en
Información sobre archivos
Cuando listas los archivos que se encuentran en un determinado directorio tienes mucha información… Así por ejemplo,
drwxrwxr-x 2 lorenzo lorenzo 4,0K feb 11 08:33 documentos
-rwxrwxr-x 1 lorenzo lorenzo 432 dic 2 07:53 droidcamx.sh
-rw-rw-r-- 1 lorenzo lorenzo 11K dic 2 19:06 feed.log
Vamos por orden, te explico a continuación que es cada una de las columnas que aparece en cada línea.
drwxrwxr-x
esto te indica el tipo de archivos y los permisos que tiene. Así en este caso, la primera letrad
indica que es un directorio. Los siguientes conjuntos de tres letras, en total tres por tres, se corresponde con los permisos, de lectura escritura y ejecución. Esto lo verás con mas detalle en un capítulo posterior. Para la primera letra hay las siguientes posibilidades,-
para archivos regularesb
archivo especial tipo bloquec
para archivos especiales tipo carácterd
en el caso de directoriosl
esto es para enlaces simbólicosn
archivos de redp
para los tipos de archivos especiales tipopipe
s
esto es para archivos tipo socket
- El número que va a continuación es el número de enlaces duros a ese archivo o directorio.
- A continuación encontrarás el usuario y el grupo propietarios del archivo.
- El siguiente valor se corresponde con el tamaño del archivo.
- A continuación vienen mes, día, hora y minutos.
- El último texto se corresponde con el nombre del archivo.
Gestionar archivos y directorios
Ahora que ya conoces los detalles de Linux en referencia al tratamiento de archivos, vamos a comenzar a gestionar archivos y directorios. Así a continuación, te voy a indicar las herramientas y comandos mas utilizados.
Crear un directorio
Los directorios en Linux se organizan de forma jerárquica, es decir, la típica estructura de árbol. Así para crear un directorio, en operativa de gestionar archivos, tan solo tenemos que ejecutar la siguiente orden,
mkdir midirectorio
Recuerda lo que te he comentado anteriormente en referencia a los espacios. No solo puedes crear directorios de forma relativa al directorio en el que te encuentras, sino también de forma absoluta.
Así, si por ejemplo te encuentras en /home/lorenzo
, las siguientes órdenes serían equivalentes,
mkdir ejemplo
mkdir /home/lorenzo/ejemplo
mkdir ~/ejemplo
mkdir ./ejemplo
mkdir ../lorenzo/ejemplo
Aquí te llamo la atención sobre lo siguiente,
~
hace referencia a tu directorio de inicio. En mi caso se refiere a/home/lorenzo
.
se refiere al directorio en que te encuentras..
por el contrario, se refiere al directorio padre del que te encuentras.
Si quieres crear varios directorios en cadena tienes que añadir la opción -p
. Es decir, si quieres crear /home/lorenzo/este/es/otro/ejemplo
(se entiende que a partir de este/es/otro/ejemplo
no existe), tendrías que ejecutar
mkdir -p /home/lorenzo/este/es/otro/ejemplo
Borrar un archivo o directorio
A la hora de gestionar archivos y directorios también necesitas poder borrarlos. En el caso de que lo que quieras hacer es borrar un archivo, tienes que utilizar rm
. Si lo que quieres es borrar un directorio de forma recursiva rm -r
. Para forzar el borrado rm -f
. Así para borrar directorios de forma recursiva, la orden sería rm -rf
.
De ahí que habrás visto en alguna ocasión aquello de rm -rf /
. Básicamente lo que haces es borrar toda el árbol de directorio. Para esto necesitas derecho de administrador.
Copiar un archivo o directorio
Otra operación necesaria a la hora de gestionar archivos es la de copiar. Copiar un archivo o directorio es tan sencillo como utilizar la herramienta cp
. Si además utilizamos la opción -r
al copiar un directorio, la copia se realizará de forma recursiva. Algunos ejemplos
- para copiar el archivo
ejemplo1
e un nuevo archivo llamadoejemplo2
cp /home/lorenzo/ejemplo1 ejemplo2
- para copiar el archivo
ejemplo1
en el directorio/home/lorenzo/directorio
cp /home/lorenzo/ejemplo1 /home/lorenzo/directorio
Mover un archivo o directorio
Es una herramienta similar a cp
pero con la ventaja de que no tenemos que utilizar la opción -r
para indicarle que lo haga de forma recursiva.
Así para mover el archivo /home/lorenzo/archivo.txt
a /home/lorenzo/directorio/archivo.txt
ejecutaríamos,
mv /home/lorenzo/archivo.txt /home/lorenzo/directorio/archivo.txt
Igualmente esta herramienta se utiliza para renombrar tanto archivos como directorios. Por ejemplo,
mv /home/lorenzo/archivo.txt /home/lorenzo/otro_archivo.txt
Conclusión
Este nuevo capítulo del tutorial, sobre gestionar archivos, es algo mas denso que los anteriores, y precisamente por este te pido, que si quieres que te aclare algún punto, no dudes en decírmelo. Y por otro lado, dado el avance que hemos hecho, sería interesante que practicaras todo lo que has visto.
Si por supuesto quieres que añada más ejemplos, o que detalle una parte de este capítulo, no dudes en decírmelo.
Más información,
Es bueno saber que podemos acceder a terminal de Linux y configurar los soware , archivos.faltaria cómo Linux nos dejaría
Descargar gratis aplicaciones, juegos para adultos , videos.
Y por último como hacer que el equipo acepte pagarse y reiniciar sin entrar al terminal de Linux.