Inicialmente, pensei que fosse uma coincidência, mas agora vejo que há até uma etiqueta : todos os nomes de arquivos ocultos começam com um ponto. Isso é uma convenção? Por que foi escolhido? Isso pode ser mudado? Ou, em outras palavras (como uma pergunta relacionada @evilsoup sugeriu que implica a resposta para várias outras pessoas): posso ocultar arquivos sem renomeá-los (usando .
como o primeiro caractere de seu nome)?
filesystems
filenames
dot-files
JMCF125
fonte
fonte
Respostas:
Segundo a Wikipedia ,
... então começou como um bug e foi adotado como um recurso (para o registro,
.
é um link para o diretório atual e..
um link para o diretório acima dele, mas tenho certeza que você já sabe disso) ) Como esse método de ocultar arquivos é bom o suficiente na maioria das vezes, suponho que ninguém se incomodou em implementar o ocultação de arquivos no estilo Windows.Há também o fato de que implementar comportamentos diferentes produziria uma quantidade ainda maior de fragmentação no mundo * nix, que é a última coisa que alguém deseja.
Há outro método para ocultar arquivos que não envolve renomeá-los, mas funciona apenas para gerenciadores de arquivos da GUI (e não é universal entre eles - os principais do Linux usam, mas não acho que o OSX's Finder o faça, e é mais provável que os gerenciadores de arquivos Linux de nicho suportem esse comportamento): você pode criar um arquivo chamado
.hidden
e colocar os nomes de arquivos que deseja ocultar nele, um por linha.ls
e globs de concha não respeitarão isso, mas ainda pode ser útil para você.fonte
Os arquivos que começam com um ponto são ignorados por padrão pelo comando "ls", que tem mais ou menos o mesmo efeito de arquivos "ocultos", mas não é o mesmo (outros comandos podem optar por fazer o mesmo ou não). Os arquivos que começam com um ponto não são "ocultos" porque "oculto" não é um dos seus atributos. Diferente do DOS / Windows, "oculto" não é um atributo no Unix. Existem muitos atributos no Unix ("man chattr" dirá todos eles), mas o oculto não é um deles.
A razão pela qual os arquivos de ponto são ignorados por "ls" é realmente bastante engraçado / embaraçoso. Não foi uma decisão de design, mas o resultado de um erro de software nos primeiros dias do Unix . Quando o especial. e .. as entradas do diretório foram adicionadas ao sistema de arquivos, foi decidido que o comando ls não deveria exibi-las porque elas estavam atrapalhando. No entanto, o programa foi escrito às pressas para excluir qualquer arquivo cujo nome começou com a. caractere, em vez dos nomes exatos "." ou "..". E criou um precedente que foi seguido desde então no Unix. Curiosamente, quando os caras do Unix começaram a criar o Plano 9, eles não colocaram arquivos de pontos nele de propósito .
fonte
man chattr
, apesar de achar que talvez fosse necessário algum pacote ou programa específico para possibilitar outros arquivos ocultos.Se você pode ocultar arquivos ou não, e em que condições, depende do sistema de arquivos que você está usando e do driver. Os sistemas de arquivos Unix tradicionais não têm um atributo "hide" para arquivos.
Um driver de sistema de arquivos pode ocultar os arquivos que deseja, simplesmente omitindo seus nomes quando fornece resultados às chamadas do sistema usadas para obter uma lista de diretórios. Como sergut descrito em sua resposta, arquivos começando com um ponto não são realmente ocultos.
(É também assim que os rootkits podem ocultar seus arquivos: eles se conectam às chamadas do sistema que produzem listagens de diretório e filtram os arquivos que desejam ocultar.)
Por exemplo, nos sistemas de arquivos em cluster Oracle ACFS, o diretório
<filesystem mountpoint>/.ACFS/
está realmente oculto: ele simplesmente não será listado, nem mesmo comls -a
. Mas se você souber que está lá, poderá acessá-lo perfeitamente.Se você estiver usando o recurso de captura instantânea do sistema de arquivos ACFS, poderá acessar qualquer captura instantânea do sistema de arquivos existente desse sistema de arquivos por meio desse
.ACFS
diretório. Se não estivesse oculto, um programa de backup pode acabar fazendo backup do conteúdo atual do sistema de arquivos e do conteúdo de qualquer instantâneo existente, o que provavelmente seria indesejável; normalmente você deseja fazer backup do estado atual ou do estado de um instantâneo específico.fonte