..
não é especial, é apenas que já existe.
Em Unix, Dos e MS-Windows, cada diretório tem um diretório .
, ele se conecta a si mesmo, e um diretório ..
liga para o seu diretório pai (ou auto, se o diretório raiz).
Se ..
e .
forem especiais, é só porque você não pode removê-los (na verdade, basta remover o diretório que os contém).
Portanto, você não pode nomear nenhum (outro) arquivo .
ou ..
.
No entanto, você pode criar arquivos ...
, \
, …
, ..
(observe que há um espaço após o ..
, mas você dificilmente pode vê-lo aqui ou facilmente na listagem do diretório) ou qualquer outro nome que você goste; O caractere reservado somente é /
(Aviso - detalhes avançados: e nulo, nulo é um caractere especial, não usado para nada, exceto para marcar o final das coisas e às vezes como um separador). .
não tem um significado especial: não para nomes de arquivos, kernel ou para o shell, ele não precisa escapar. Na verdade, se um nome de arquivo começar com .
, então é especial, o arquivo normalmente é oculto, mas ainda assim não precisa escapar.
Aparte
Esse comportamento de arquivo oculto surgiu em uma implementação inicial de ls
, onde o autor queria ocultar .
e ..
, portanto, eles escreveram código para ocultar os arquivos que começam com .
. Outros usuários notaram este bug / recurso e começaram a criar arquivos começando com .
quando eles queriam que o arquivo fosse escondido.
Explicação da questão vinculada
Na pergunta que você faz o link para o questionador está tentando mover o arquivo para o diretório pai ..
mas acaba renomeando para ...
, os arquivos que começam com um ponto são ocultos por padrão, é por isso que eles não conseguem encontrar isso.
Ao usar mv no formulário mv a b
- Se você mudar para
.
, será efetivamente uma operação no, mas mv
a tratará como um erro.
- Se você mudar para
..
, moverá o arquivo para o diretório pai.