2 pontos por GN⁺ 2024-04-21 | 1 comentários | Compartilhar no WhatsApp

Dicas para a estrutura do diretório home

  • Estruturar ou organizar diretórios não é muito diferente de estruturar ou organizar outras coisas; o principal é fazer do jeito que faça mais sentido para você
  • Ao lidar com organização, é muito fácil que tudo saia rapidamente do controle
  • O principal objetivo da organização é a eficiência: você deve conseguir encontrar com facilidade e rapidez o que procura e salvar com facilidade e rapidez o que precisa guardar

Arquivos e diretórios ocultos padrão

  • No meu diretório home, existem todos os arquivos ocultos padrão que fazem parte de um sistema operacional Unix moderno, como .config, .aliases, .profile, .gnupg, .mozilla e outros
  • Eu preferiria que todos os aplicativos respeitassem XDG_CONFIG_HOME, mas não interfiro nem me preocupo muito com isso
  • No passado, eu mantinha o $HOME no Git, e essa é uma excelente forma de organizar dotfiles
  • Ainda coloco todos os dotfiles no Git para manter o histórico de alterações, mas deixo como estão apenas os dotfiles que funcionam da mesma forma nos vários sistemas que uso
  • Os dotfiles específicos de configuração ficam no diretório dotfiles, e eu uso links simbólicos

Organização geral de arquivos e diretórios

  • Arquivos e diretórios em geral são organizados principalmente de duas formas: por "categoria" e por "data"
  • Estrutura básica de diretórios:
    • bin
    • data
    • edata
    • mnt
    • usr/dotfiles
  • Os diretórios Desktop e Downloads são mantidos como estão (porque parece que a maioria dos aplicativos os impõe)
  • No diretório bin, guardo scripts de shell e executáveis binários pessoais (exceto os instalados por meio do gerenciador de pacotes)
  • O diretório mnt é usado para vários pontos de montagem, como cartões SD, discos USB e armazenamento compartilhado usado no homelab
  • Nunca uso montagem automática; em vez disso, uso scripts de shell para montar
  • O diretório usr/dotfiles é gerenciado com Git junto com dotfiles gerais como .aliases, e usa links simbólicos para os arquivos relacionados no diretório dotfiles

Organização do diretório de dados

  • Os diretórios data e edata são os dois diretórios principais onde todo o material é armazenado
  • Esses dois diretórios são datasets ZFS executados em um pool espelhado de discos, separado da instalação raiz
  • Aproveito o ZFS para usar snapshots e também envio e recebimento de ZFS regularmente, o que facilita o backup para armazenamento em rede
  • A diferença entre data e edata é que edata é um dataset com criptografia nativa do ZFS
  • A criptografia é boa para a privacidade, mas é uma camada terrível de complexidade colocada sobre uma hierarquia de sistema de arquivos que já é complexa, e a criptografia do ZFS tem bugs
  • Recomendo fortemente que dados importantes sejam sempre copiados em backup para várias soluções de armazenamento e locais diferentes
  • Não uso armazenamento em nuvem para nada importante

Dicas adicionais

  • A regra básica para nomear arquivos e diretórios é que você deve conseguir identificar facilmente o que é apenas pelo nome
  • Se você não consegue saber sobre o que é um arquivo sem abri-lo, deve abri-lo imediatamente e renomeá-lo para algo mais significativo na próxima vez que olhar para o nome
  • Se você deixar arquivos e diretórios sem organizar, depois fica muito difícil corrigir isso
  • Quando necessário, uso nomes de arquivo longos com descrições detalhadas para conseguir entender o conteúdo do arquivo sem abri-lo

Opinião do GN⁺

  • Este artigo oferece dicas práticas sobre como organizar e estruturar diretórios. Em especial, é interessante a forma de separar e gerenciar diretórios criptografados e não criptografados usando datasets ZFS.

  • Pessoalmente, acho bom armazenar dados importantes de forma criptografada. No entanto, como há desvantagens como perda de desempenho e aumento da complexidade por causa da criptografia, parece melhor usar isso de forma seletiva conforme a situação.

  • Além disso, considero um ponto importante compartilhar com a família a forma de acessar os dados criptografados. É necessário garantir que os dados não sejam perdidos mesmo que a própria pessoa não consiga mais acessá-los por causa de um acidente ou algo do tipo.

  • Para gerenciar dados pessoais, é muito importante estabelecer uma estratégia de backup sistemática como a do autor. Seguir a regra de backup 3-2-1 e, em vez de armazenamento em nuvem, usar armazenamento local fisicamente distribuído também parece uma boa abordagem.

  • Ferramentas open source úteis para organização de dados pessoais incluem Syncthing e Nextcloud. Se essas ferramentas forem bem utilizadas, parece possível fazer uma gestão de dados pessoais organizada e segura.

1 comentários

 
GN⁺ 2024-04-21
Comentários do Hacker News

A seguir está um resumo dos comentários do Hacker News:

  • Há reclamações sobre o diretório home ficar bagunçado por causa dos aplicativos. Em especial, aponta-se que ~/go, o diretório padrão dos módulos Go, é um problema. Dá para resolver com a configuração de GOPATH, mas a opinião é que esse é um padrão ruim.
  • Usar a ferramenta xdg-ninja pode ajudar a organizar o diretório home, pois ela permite configurar a maioria dos aplicativos para seguir o padrão XDG.
  • Aplicativos armazenam dados de sessão na pasta .config na casa dos gigabytes, o que dificulta os backups. A opinião é que configurações e dados de sessão deveriam ficar separados.
  • Cada pessoa tem preferências diferentes para a estrutura de arquivos. Alguns preferem deixar o diretório home quase vazio e usar armazenamento em nuvem ou partições separadas. Guardar chaves SSH em um gerenciador de senhas também pode ser uma opção.
  • Classificar fotos com palavras-chave EXIF pode ser uma boa forma de evitar problemas de duplicação. Para nomes de arquivos de documentos, pode-se usar formatos como data-descrição.txt ou palavra-chave-título-data.txt.
  • É melhor diferenciar nomes de pastas para GUI com letras maiúsculas e para CLI com letras minúsculas. ~/dotfiles pode ser usado como repositório Git para gerenciar dotfiles, criando links simbólicos no diretório home por conveniência.
  • ~/projects pode ser usado para organizar projetos em subdiretórios, e ~/tmp pode servir para armazenar arquivos temporários. Também pode ser uma boa ideia organizar notas em um site ou em Markdown.
  • Muitos nomes de diretórios começam com “D”, o que pode causar confusão. Criar pastas de projeto por ano e data, aninhadas apenas em um nível, facilita a navegação.
  • Usar hífens em vez de underlines em nomes de arquivos e diretórios é melhor para SEO e também mais prático no terminal.
  • Para backup, pode-se usar vários serviços ao mesmo tempo, como Time Machine, Backblaze e iCloud, e também armazenar arquivos compactados no S3.