Saltar al contenido

2.1 Navegación y Gestión de Archivos

Recuerda que todo comienza en /.

  • Ruta absoluta: Comienza con /. Siempre funciona, sin importar dónde estés. (ej.: /home/user/docs/file.txt).
  • Ruta relativa: No comienza con /. Depende de tu ubicación actual. (ej.: docs/file.txt o ../file.txt).
ComandoNombreFunción
pwdPrint Working DirectoryTe dice dónde estás ahora mismo.
cdChange DirectoryTe mueve a una nueva carpeta.
cd ..Sube un nivel.
cd ~Va a tu directorio personal (home).
cd -Vuelve al directorio anterior.
lsListMuestra los archivos en el directorio actual.

Rara vez ejecutas solo ls. Opciones habituales:

  • ls -l: Listado largo (permisos, propietario, tamaño, fecha).
  • ls -a: Todos los archivos (muestra archivos ocultos que empiezan por .).
  • ls -lh: Listado largo con tamaños legibles para humanos (MB, GB).
  • ls -la: Listado largo de todos los archivos (incluyendo ocultos).
  • ls -ltr: Ordena por fecha (los más recientes al final).

Los comodines ayudan a seleccionar múltiples archivos:

  • *.txt: Todos los .txt.
  • file?.txt: Coincide file1.txt, fileA.txt, etc.
  • docs/*/index.md: Cualquier index.md dentro de un subdirectorio de docs/.
ComandoFunciónEjemplo
mkdirCrear directoriomkdir projects
touchCrear archivo vacíotouch notes.txt
cpCopiarcp notes.txt backup.txt
cp -rCopiar de forma recursiva (carpeta)cp -r projects/ projects-backup/
mvMover (o renombrar)mv notes.txt doc.txt
rmEliminar (borrar)rm file.txt
rmdirEliminar directorio vacíormdir old-empty-dir
rm -iConfirmación interactivarm -i file.txt

Herramientas habituales para localizar archivos en el sistema:

Busca archivos en una jerarquía de directorios.

  • Sintaxis: find [ruta] [expresión]
  • Ejemplos:
    • find /etc -name "*.conf": Busca todos los archivos en /etc que terminen en .conf.
    • find . -type f: Busca solo archivos en el directorio actual.
    • find . -type d: Busca solo directorios.
    • find /var/log -size +10M: Busca archivos mayores de 10 MB.
    • find . -perm 777: Busca archivos con permisos 777.
    • find . -mtime -1: Busca archivos modificados en las últimas 24 horas.
    • find . -user alice: Busca archivos cuyo propietario sea el usuario alice.
    • find . -iname "*.jpg": Búsqueda sin distinguir mayúsculas/minúsculas.
    • find . -maxdepth 2 -name "*.md": Limita la profundidad de búsqueda.
    • find . -not -path "*/node_modules/*": Excluye directorios no deseados.
    • find . -type f -name "*.log" -exec ls -l {} \;: Ejecuta una acción por cada resultado.

Encuentra archivos por nombre usando una base de datos preconstruida (más rápido que find, pero puede estar desactualizada).

  • Sintaxis: locate [patrón]
  • Actualizar la BD: sudo updatedb (actualiza la base de datos que utiliza locate).

Localiza un comando.

  • Ejemplo: which python (muestra la ruta del ejecutable de Python).

Localiza el binario, el código fuente y las páginas de manual de un comando.

  • Ejemplo: whereis ls

Cuando escribes una orden, el shell busca el ejecutable en cada directorio de $PATH (separados por :).

  • Ver tu PATH: echo $PATH
  • Añadir temporalmente un directorio: export PATH="$HOME/bin:$PATH"
  • Hacerlo persistente:
    • En bash: añade el export a ~/.bashrc o ~/.profile
    • En zsh: añádelo a ~/.zshrc