2.1 Navegación y Gestión de Archivos
¡Prepárate!
- Entenderás la diferencia crítica entre rutas absolutas y relativas. -
Dominarás el listado de archivos avanzados y comodines (
ls,*). - Aprenderás el kit de supervivencia para manipular archivos (cp,mv,rm). - Conocerás cómo encontrar cualquier archivo perdido con
find.
Jerarquía
Sección titulada “Jerarquía"Recuerda que todo comienza en /.
Conceptos de rutas (path)
Sección titulada “Conceptos de rutas (path)"- 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.txto../file.txt).
Comandos de navegación
Sección titulada “Comandos de navegación"| Comando | Nombre | Función |
|---|---|---|
pwd | Print Working Directory | Te dice dónde estás ahora mismo. |
cd | Change Directory | Te mueve a una nueva carpeta. |
cd .. | Sube un nivel. | |
cd ~ | Va a tu directorio personal (home). | |
cd - | Vuelve al directorio anterior. | |
ls | List | Muestra los archivos en el directorio actual. |
Opciones de ls
Sección titulada “Opciones de ls"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).
Patrones glob (comodines)
Sección titulada “Patrones glob (comodines)"Los comodines ayudan a seleccionar múltiples archivos:
*.txt: Todos los.txt.file?.txt: Coincidefile1.txt,fileA.txt, etc.docs/*/index.md: Cualquierindex.mddentro de un subdirectorio dedocs/.
Gestión de archivos
Sección titulada “Gestión de archivos"| Comando | Función | Ejemplo |
|---|---|---|
mkdir | Crear directorio | mkdir projects |
touch | Crear archivo vacío | touch notes.txt |
cp | Copiar | cp notes.txt backup.txt |
cp -r | Copiar de forma recursiva (carpeta) | cp -r projects/ projects-backup/ |
mv | Mover (o renombrar) | mv notes.txt doc.txt |
rm | Eliminar (borrar) | rm file.txt |
rmdir | Eliminar directorio vacío | rmdir old-empty-dir |
rm -i | Confirmación interactiva | rm -i file.txt |
Búsqueda de archivos
Sección titulada “Búsqueda de archivos"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/etcque 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 usuarioalice.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 utilizalocate).
Localiza un comando.
- Ejemplo:
which python(muestra la ruta del ejecutable de Python).
whereis
Sección titulada “whereis"Localiza el binario, el código fuente y las páginas de manual de un comando.
- Ejemplo:
whereis ls
$PATH y resolución de comandos
Sección titulada “$PATH y resolución de comandos"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~/.bashrco~/.profile - En
zsh: añádelo a~/.zshrc
- En
Comprueba tus conocimientos
Sección titulada “Comprueba tus conocimientos"- Estás en
/home/juan/docsy quieres copiar el archivoinforme.txtdirectamente a la carpeta padre/home/juan. ¿Cuál es el comando con ruta relativa correcto?
- Has descargado un script de internet y necesitas encontrar un archivo de log viejo que sea mayor a 100MB alojado en algún lugar de
/var/log. ¿Cuál es el comando más idóneo?
- Quieres listar todos los archivos, incluyendo los ocultos (que empiezan por punto), ordenados por fecha para ver los más recientes al fondo de la pantalla. ¿Qué combinación de banderas de
lsusarías?