2 puntos por GN⁺ 2024-04-21 | 1 comentarios | Compartir por WhatsApp

Consejos para estructurar el directorio home

  • Estructurar u ordenar directorios no es muy distinto de estructurar u ordenar cualquier otra cosa, y la clave es hacerlo de la manera que más sentido tenga para uno mismo
  • Al manejar la organización, todo puede salirse de control muy rápido
  • El objetivo principal del orden es la eficiencia: deberías poder encontrar fácil y rápidamente lo que buscas, y guardar fácil y rápidamente lo que necesitas guardar

Archivos y directorios ocultos predeterminados

  • En mi directorio home tengo todos los archivos ocultos predeterminados que forman parte de un sistema operativo Unix moderno, como .config, .aliases, .profile, .gnupg, .mozilla, etc.
  • Preferiría que todas las aplicaciones respetaran XDG_CONFIG_HOME, pero no me meto demasiado ni me preocupo tanto por eso
  • En el pasado mantuve $HOME en Git, y es una excelente forma de gestionar los dotfiles
  • Sigo poniendo todos los dotfiles en Git para conservar el historial de cambios, pero dejo tal cual solo los dotfiles que funcionan igual en los distintos sistemas que uso
  • Los dotfiles específicos de cada configuración se guardan en el directorio dotfiles y se usan enlaces simbólicos

Organización general de archivos y directorios

  • Los archivos y directorios generales se organizan principalmente de dos maneras: por "categoría" y por "fecha"
  • Estructura básica de directorios:
    • bin
    • data
    • edata
    • mnt
    • usr/dotfiles
  • Los directorios Desktop y Downloads se dejan como están (parece que la mayoría de las aplicaciones los imponen)
  • El directorio bin se usa para guardar scripts de shell y ejecutables binarios personales (excepto los instalados mediante el gestor de paquetes)
  • El directorio mnt se usa para varios puntos de montaje, como tarjetas SD, discos USB y almacenamiento compartido usado en el homelab
  • Nunca hago montaje automático; uso scripts de shell para montar
  • El directorio usr/dotfiles se gestiona con Git junto con dotfiles generales como .aliases, y usa enlaces simbólicos a los archivos relacionados del directorio dotfiles

Organización del directorio de datos

  • Los directorios data y edata son los dos directorios principales donde se guarda todo el material
  • Estos dos directorios son datasets de ZFS que corren sobre un pool de espejado de discos, separado de la instalación raíz
  • Aprovechando ZFS, se usan snapshots y también envío y recepción de ZFS de forma periódica para respaldar fácilmente en almacenamiento de red
  • La diferencia entre data y edata es que edata es un dataset de cifrado nativo de ZFS
  • El cifrado es bueno para la privacidad, pero añade una capa terrible de complejidad sobre una jerarquía de sistema de archivos que ya es compleja, y el cifrado de ZFS tiene bugs
  • Se recomienda encarecidamente respaldar siempre los datos importantes en varias soluciones de almacenamiento y ubicaciones distintas
  • No se usa almacenamiento en la nube para cosas importantes

Consejos adicionales

  • La regla básica para nombrar archivos y directorios es que debería ser fácil identificar qué son solo con ver el nombre
  • Si no puedes saber de qué trata un archivo sin abrirlo, deberías abrirlo de inmediato y cambiarle el nombre por uno más significativo para la próxima vez que lo veas
  • Si dejas archivos y directorios sin ordenar ni atender, luego se vuelve muy difícil corregirlo
  • Se usan nombres de archivo con descripciones largas cuando hace falta, para poder entender el contenido sin abrir el archivo

La opinión de GN⁺

  • Este artículo ofrece consejos prácticos sobre cómo ordenar y organizar la estructura de directorios. En particular, resulta interesante la forma de administrar separando directorios cifrados y no cifrados mediante datasets de ZFS.

  • Personalmente, creo que es buena idea guardar cifrados los datos importantes. Sin embargo, como también tiene desventajas como la caída de rendimiento o el aumento de complejidad, parece mejor usarlo de forma selectiva según cada situación.

  • Además, también parece importante compartir con la familia la forma de acceder a los datos cifrados. Hace falta evitar perder los datos incluso si uno ya no puede acceder por un accidente u otra situación.

  • Para la gestión de datos personales, es muy importante establecer una estrategia de respaldos sistemática como la del autor. Seguir la regla de respaldo 3-2-1 y, más que depender del almacenamiento en la nube, aprovechar almacenamiento local distribuido físicamente también parece una buena opción.

  • Entre las herramientas open source útiles para organizar datos personales están Syncthing y Nextcloud. Si se aprovechan bien estas herramientas, parece posible lograr una gestión de datos personales ordenada y segura.

1 comentarios

 
GN⁺ 2024-04-21
Opiniones en Hacker News

A continuación, un resumen de los comentarios de Hacker News:

  • Hay quejas sobre cómo los directorios personales se desordenan por culpa de las aplicaciones. En particular, se señala que el directorio predeterminado de los módulos de Go, ~/go, es un problema. Se puede resolver configurando GOPATH, pero se considera un valor predeterminado poco adecuado.
  • Si se usa una herramienta llamada xdg-ninja, se puede configurar la mayoría de las aplicaciones para que sigan el estándar XDG, lo que ayuda a ordenar el directorio personal.
  • Algunas aplicaciones guardan datos de sesión de varios gigabytes en la carpeta .config, lo que complica los respaldos. Se opina que la configuración y los datos de sesión deberían estar separados.
  • Cada persona tiene preferencias distintas sobre la estructura de archivos. Algunas dejan el directorio personal casi vacío y usan almacenamiento en la nube o particiones separadas. Guardar las claves SSH en un administrador de contraseñas también puede ser una opción.
  • Clasificar las fotos con palabras clave EXIF puede ser una buena forma de evitar problemas de duplicados. Para los nombres de archivos de documentos, se pueden usar formatos como fecha-descripción.txt o palabra-clave-título-fecha.txt.
  • Es buena idea distinguir los nombres de carpetas para GUI en mayúsculas y los de CLI en minúsculas. ~/dotfiles puede usarse como repositorio Git para administrar dotfiles, y resulta práctico crear enlaces simbólicos en el directorio personal.
  • ~/projects puede usarse para organizar subdirectorios por proyecto, y ~/tmp como espacio para archivos temporales. También puede ser una buena idea organizar notas en un sitio web o en Markdown.
  • Muchos nombres de directorios empiezan con "D", lo que puede causar confusión. Crear carpetas de proyecto por año y fecha, con solo un nivel de profundidad, facilita la navegación.
  • Para nombres de archivos y directorios, usar guiones en lugar de guiones bajos favorece el SEO y también resulta más cómodo al trabajar en la terminal.
  • Para respaldos, puede ser buena idea usar varios servicios a la vez, como Time Machine, Backblaze e iCloud, y también guardar archivos comprimidos en S3.