Moverse entre carpetas

Cómo navegar por directorios desde terminal


Ahora que sabemos en la carpeta en la que nos encontramos y como ver su contenido, algo que es fundamental al trabajar en una terminal es saber moverse entre directorios o cambiar de carpetas.

Cambiar de carpetas

Existen varios comandos que nos permiten movernos entre carpetas. A continuación te presento algunos de los más interesantes, desde el clásico cd hasta el práctico j (autojump):

Para movernos entre carpetas, lo más habitual suele ser utilizar el comando cd (change directory) seguido del nombre de la carpeta (movimiento relativo) o ruta completa (movimiento absoluto) a la que queremos acceder.

$ pwd            # /home
$ cd manz        # Accede a una ruta relativa
$ pwd            # /home/manz
$ cd /var/log    # Accede a una ruta absoluta

Ten en cuenta que al escribir el nombre de la carpeta o ruta, puedes pulsar TAB y el sistema te sugiere las opciones que encajen con lo que has escrito (o autocompleta si solo hay una opción), de modo que no tendrás que escribirlo por completo.

Existen algunas palabras clave para referirnos a rutas específicas:

# «Sale» de la carpeta actual y se mueve a la carpeta padre
cd ..

# Accede a la carpeta personal del usuario
cd ~
cd

De la misma forma, se pueden hacer combinaciones como ls ~/.oh-my-fish/, que es lo mismo que ls /home/manz/.oh-my-fish/ (si soy el usuario manz) o ls ../etc sería equivalente a ls /etc si estoy en la carpeta /home.

Si acostumbras a trabajar en una terminal, es muy común perder bastante tiempo escribiendo los nombres de las carpetas o pensando cuál era la ruta a la que quieres saltar, si no estás muy familiarizado con ella.

El comando z (zoxide) es una mejora interesante del cd, ya que se basa en saltar a la carpeta «frecuente» y más reciente que más se aproxime en similitud al parámetro escrito. Veamoslo con un ejemplo:

$ cd /etc/nginx
$ ls -lh
$ cd /home/manz
$ z nginx
$ pwd
/etc/nginx

Recuerda que zoxide no viene instalada por defecto. Se trata de un comando creado en Rust, por lo que necesitaremos tener instalado Rust, y luego instalar el comando mediante un cargo install zoxide.

Una vez instalado, editaremos nuestra configuración con nano ~/.bashrc y añadiremos al final la siguiente linea:

eval "$(zoxide init bash)"

Si utilizamos otra terminal como zsh, editaremos la configuración ~/.zshrc y en el texto de arriba en lugar de bash escribiremos zsh.

Carpetas del sistema

Linux tiene una estructura de carpetas bien definida, donde cada carpeta tiene una finalidad muy concreta, y en ella se guardan los archivos correspondientes. Por otra parte, mientras que en Windows la ruta raíz (la primera carpeta del sistema) es C:\, en Linux es /, puesto que todo parte de esa ruta raíz.

Desde esa ruta / nos podemos encontrar varias carpetas, cada una con una finalidad concreta:

CarpetaDescripción
/Carpeta raíz del sistema. Equivalente a C:\ en Windows.
/binBinarios (comandos ejecutables) principales.
/bootArchivos de arranque. Equivale a C:\bootmgr en Windows.
/devDispositivos físicos de hardware.
/etcArchivos de configuración. Equivale al registro de Windows.
/homeCarpetas del usuario. Equivale a C:\Users en Windows.
/libBibliotecas del sistema. Equivale a C:\Windows\System32.
/lost+foundArchivos corruptos o recuperados.
/mediaMedios extraíbles. Generalmente, carpetas de CD/DVD, usb, unidades extraíbles...
/mntMontaje temporal reservado para el administrador de sistemas.
/optAplicaciones o paquetes adicionales (opcionales).
/procProcesos internos del sistema.
/rootCarpeta personal del administrador.
/runInformación reciente.
/sbinArchivos binarios reservados para root. Sólo accesible si tienes privilegios.
/srvDatos específicos para servicios.
/sysNueva versión o evolución de /proc/
/tmpArchivos temporales. Muchas veces, eliminados al reiniciar el sistema.
/usrDatos de paquetes instalados. Equivale a C:\Archivos de Programa en Windows.
/varLogs, cache, variables, etc...

Normalmente, como usuarios, estaremos continuamente trabajando sobre la carpeta de nuestro usuario, por ejemplo, /home/manz, que es la zona de trabajo de ese usuario.

Más adelante, en otro artículo, veremos como realizar otras operaciones de manipulación como copiar, borrar, mover y crear carpetas o ficheros.

Explorador de archivos

Otra opción interesante para trabajar con carpetas en Linux es utilizar un explorador de archivos de terminal. Antes de instalar uno, recuerda que es recomendable no instalarlo simplemente por evitar aprender a utilizar los comandos cd. Eso te llevaría a evitar aprender una herramienta sólo y exclusivamente por comodidad.

Los exploradores de archivos de terminal más populares son los siguientes:

Explorador de archivosDescripción
brootExplorador de archivos de terminal que permite lanzar archivos. Creado en Rust.
nnnExplorador de archivos pequeño, rápido y sin necesidad de configuración.
mcExplorador de archivos completo, diseñado en base al clásico Norton Commander de los 90.
rangerExplorador de archivos de terminal inspirado en VIM.
lfExplorador de archivos de terminal minimalista desarrollado en Go.

Si esto exploradores te ayudan a moverte por las estructuras de carpetas en tus primeros pasos, está bien, pero intenta no evitar aprender a utilizar el comando cd y anteriores, ya que probablemente desemboque en carencias.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev