Por exemplo, em My Documents
, existem as seguintes pastas:
.ssh
.subversion
É algum tipo de convenção de nomenclatura que eu não conheço?
Essa convenção de nomenclatura vem de sistemas operacionais semelhantes ao Unix (como Linux ou OS X), onde significa um arquivo ou diretório "oculto". Ele funciona em qualquer lugar, mas seu uso principal é ocultar arquivos de configuração em seu diretório pessoal (por exemplo, ~/.cache/
ou ~/.plan
- eles são freqüentemente chamados de "arquivos de ponto").
Dotfiles poderia, de certa forma, ser chamado o equivalente tradicional do Unix ao diretório "AppData" no Windows. (Muitos programas Linux estão sendo alterados para seguir a especificação do diretório base do XDG , movendo sua configuração para ~/.config/
e outros dados para ~/.cache/
& ~/.local/share/
- isso o torna um pouco mais parecido com AppData\Roaming
e AppData\Local
.)
Você tem estes .ssh
e .subversion
diretórios no Windows, porque você já usou alguns programas - especificamente, OpenSSH e Subversion - que foram portados para usar APIs de sistema do Windows, em vez dos POSIX, mas não foram ajustadas para algumas outras convenções do Windows.
Às vezes, essa adaptação é ignorada intencionalmente, para facilitar a vida de pessoas que usam ambientes semelhantes ao Unix, como o Cygwin, em seus sistemas Windows. Por exemplo, o Cygwin instala o conjunto padrão de ferramentas do tipo Unix ls
, que ignora o sinalizador "oculto" do Windows e honra apenas os .dotfile
nomes. Além disso, o uso do mesmo local (por exemplo <home>/.ssh
) pode facilitar a sincronização da configuração entre os computadores Windows e Linux / BSD / OSX.
Além disso: Normalmente, esses arquivos estão no diretório inicial do usuário , por exemplo, no Linux ou no Windows 7 ou superior. É muito raro que eles sejam colocados nos subdiretórios "Documentos" ou "Meus Documentos"./home/name/.ssh
C:\Users\name\.ssh
Como Rob Pike escreve no Google+ , esse foi um recurso acidental:
Há muito tempo, quando o design do sistema de arquivos Unix estava sendo elaborado, as entradas
.
e..
apareciam para facilitar a navegação. Não tenho certeza, mas acredito que tenha..
ocorrido durante a reescrita da Versão 2, quando o sistema de arquivos se tornou hierárquico (ele tinha uma estrutura muito diferente desde o início). Quando se digitou ls, no entanto, esses arquivos apareceram; portanto, Ken ou Dennis adicionaram um teste simples ao programa. Estava no assembler, mas o código em questão era equivalente a algo como isto:
if (name[0] == '.') continue;
Essa afirmação foi um pouco mais curta do que deveria, que é
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
mas ei, foi fácil.
Duas coisas resultaram.
Primeiro, um mau precedente foi estabelecido. Muitos outros programadores preguiçosos introduziram bugs fazendo a mesma simplificação. Os arquivos reais que começam com pontos geralmente são ignorados quando devem ser contados.
Segundo, e muito pior, a idéia de um arquivo "oculto" ou "ponto" foi criada. Como conseqüência, programadores mais preguiçosos começaram a soltar arquivos no diretório pessoal de todos. Não tenho tantas coisas instaladas na máquina que estou usando para digitar isso, mas meu diretório pessoal possui cerca de cem arquivos de ponto e nem sei o que é a maioria deles ou se ainda é necessário . Toda avaliação de nome de arquivo que passa pelo meu diretório pessoal é retardada por esse lodo acumulado.
ls
tem a-a
opção de listar todos os arquivos.LOGIN.COM
ouDECW$MAIL.DAT
no seu diretório pessoal . (Não tenho certeza de quais outros sistemas eram populares na época.) O Unix havia sido criado recentemente; não tinha nenhuma convenção...
"up dir"; A Microsoft realmente anunciou esses "recursos avançados do Unix".