A resposta curta

A resposta curta

Às vezes faz sentido que o nome de uma pasta contenha um ponto ( .). Por exemplo, você está armazenando dados de um experimento conduzido em L=0,5. Portanto, a pasta pode ser nomeada:

experiment_L0.5

Um problema semelhante pode surgir para nomes de arquivos. Por exemplo:

file_L0.5.txt

Trabalhar no Ubuntu, isso é uma má prática? Que tal compartilhar esses diretórios com um usuário do Windows?

Responder1

Pelo que eu sei, não há problemas em nomear pastas e arquivos com um ou vários pontos.

O Ubuntu geralmente não usa ponto e três caracteres (como .txt) para identificar o tipo de arquivo. Portanto, isso não tem nenhum significado especial no contexto do Ubuntu. Isso é útil ao compartilhar arquivos com o Windows. Ubuntu usaNúmeros Mágicosnos primeiros bytes do arquivo para identificar o tipo de arquivo. No entanto, o Nautilus ignora os números mágicos se a extensão de ponto e três caracteres estiver disponível para identificar o tipo de arquivo. Esta configuração pode ser alterada. Ver Forçar o nautilus a ignorar extensões

No Ubuntu, iniciar o nome de um arquivo ou pasta com um ponto, como .experiment_L0.5, torna o arquivo ou pasta oculto. Você pode alternar a exibição de arquivos ocultos pressionando Ctrl+ Hno Nautilus. No Windows, um nome de arquivo que começa com um .na frente dele não fica oculto. Portanto, se você transferir um arquivo oculto nomeado .experiment_L0.5para um sistema Windows, ele ficará totalmente visível.

No Ubuntu, um nome de arquivo pode terminar com um ponto, pois não tem nenhum significado especial colocado no final. No entanto, no Windows, um ponto separa o nome do arquivo e a extensão, e um nome de arquivo que termine com um ponto, mas sem extensão, não é permitido. Quando tentei criar esse arquivo no Windows, obtive um arquivo apenas com o nome, sem ponto, sem extensão.

Referência:Wiki sobre nomes de arquivos

Espero que isto ajude.

Responder2

A resposta curta

  • O Windows não permite os seguintes caracteres: <>:"/\|?*(fonte)
  • Mais caracteres desencorajados são: espaço e ponto .(fonte)
    • As ferramentas de linha de comando são mais difíceis de usar quando você tem espaços nos nomes (mais difícil, não impossível)
    • Os pontos são usados ​​em RegEx (por exemplo, quando você deseja usar grep). Um ponto inicial torna um arquivo oculto por convenção no Linux. No Windows, os pontos são usados ​​na extensão do arquivo, que é usada para detecção do tipo de arquivo.
  • O Windows também não permitirá nomes de arquivos CON, PRN, AUX, CLOCK$, NUL COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9 LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, e LPT9. (fonte)
  • Os únicos caracteres não permitidos em sistemas de arquivos Unix que conheço são /e null (o byte nulo \0).
  • Veja também:Limites do sistema de arquivos(Não sei com qual Windows você deseja que seja compatível).

A longa resposta

Formação técnica: Sistema de arquivos

Ubuntu faz uso doext4sistema de arquivo. Um sistema de arquivos rastreia onde os arquivos estão armazenados no armazenamento subjacente (disco ou SSD ou qualquer outro), permissões na forma de proprietário/grupo/outro podem ler/gravar/executar, carimbos de data/hora, nome.

O sistema de arquivos estrutura o armazenamento disponível. O primeiro bloco é denominado "superbloco". Este bloco é usado para montar um sistema de arquivos. Até onde eu sei, todo sistema de arquivos moderno divide seu espaço em blocos. Acho (e não tenho muita certeza) que a maioria dos sistemas de arquivos também tem um tamanho de bloco fixo, embora o tamanho do bloco possa ser configurado quando o sistema de arquivos é criado. ext4 (e também ext2 e ext3) fazem uso dos chamados "inodes" para arquivos e diretórios. Esses inodes contêm ponteiros para outros blocos (que também podem ser inodes ou "blocos de dados"). E o “primeiro” inode de um arquivo contém todas as informações que mencionei acima.

Uma outra informação é o “tipo” do arquivo. "Tipo" pode ser:

  • arquivo normal
  • diretório
  • arquivo de dispositivo (dispositivo de bloco ou caractere)
  • ...

Na verdade, você também pode abrir diretórios com um editor:

vim /home

Como o diretório não contém o caminho completo, mas apenas os nomes do conteúdo, não vejo uma razão pela qual os arquivos não possam conter um arquivo /. Acho que pode ser conveniência. (Alguém sabe por que /não é permitido?)

No entanto, as coisas são diferentes para outros sistemas de arquivos. O FAT16 e o ​​FAT32 usavam a chamada "tabela de alocação de arquivos". Isso significa que há uma tabela que contém todos os arquivos armazenados em seu arquivo, em qual "cluster" eles iniciam e em qual cluster terminam como uma lista vinculada individualmente.

O importante que eu queria dizer é que os caracteres não permitidos também podem depender do sistema de arquivos.

Contexto técnico: tipos de arquivo

  • O Windows usa extensões de arquivo para detectar tipos de arquivo
  • Linux usa "Magic Bytes" para detectar tipos de arquivos.Bytes Mágicosfazem parte do conteúdo do arquivo e, portanto, são completamente independentes do nome. Esses bytes fazem parte da especificação do tipo de arquivo (vejaespecificação pngcomo um exemplo). Ele também usa extensões de nome de arquivo para arquivos com os mesmos bytes mágicos, como .txtou .html(ambos são arquivos de texto).

Relacionado

Responder3

Para completar, os nomes que consistem apenas em um .ou dois pontos ..são especiais:

  • .refere-se ao diretório atual
  • ..refere-se ao diretório pai

Essas entradas são adicionadas automaticamente e sempre existem, portanto você não pode ter um arquivo chamado .ou ...

Responder4

A nomenclatura de arquivos é muito flexível em sistemas de arquivos Unix e Linux. O único nome de arquivo que você não pode ter é umnulocaractere ou aquele que contém um /em seu nome. Mas certamente seria uma boa prática evitar o uso de caracteres proibidos/reservados em outros sistemas do ponto de vista da portabilidade de nomes; como se você não devesse usar nenhum " * : < > ? \ / |caractere (restrito por NTFS) no nome do arquivo se quiser acessar o arquivo em um sistema Windows.

Esobre como usar um .(ponto final) no nome do arquivo, acho que deve ficar tudo bem, pois não parece ser um"reservado"caractere em qualquer um dos sistemas (exceto OpenVMS, MS-DOS e Windows onde seu uso no nome de arquivo/diretório é permitido, mas a última ocorrência será interpretada como o separador de extensão em VMS, MS-DOS e Windows) conforme mencionado em o link da Wikipedia a seguir:

Em outros sistemas, geralmente considerado como parte do nome do arquivo, mais de um ponto pode ser permitido. No Unix, um ponto inicial significa que o arquivo ou pasta normalmente está oculto.

informação relacionada