Estou em 14.04 prestes a passar para 18.04. Nessa versão do Ubuntu posso ter uma pasta e um arquivo no mesmo local com o mesmo nome?
Meu caso de uso é que tenho arquivos html sem a extensão .html, que envio por push para o AWS S3, onde atendo alguns sites. Deixar de fora a extensão .html permite que eu tenha urls limpos para os sites. E o S3 fica perfeitamente feliz em ter diretórios e arquivos com o mesmo nome e, felizmente, eles servem o arquivo html em vez de uma pasta se você navegar até a URL que é um arquivo e uma pasta.
Isso seria bom ter no Ubuntu. Eu poderia ter um arquivo html chamado 'artigos' e uma pasta chamada artigos, e então minhas URLs seriam "RESTful".
example.com/articles/title
daria a você o artigo com esse título e example.com/articles
forneceria uma lista de artigos.
De qualquer forma, a AWS já faz isso, eu só esperava que o Nautilus ou o Ubuntu pudesse lidar com isso, para que eu não tivesse que passar por um pesadelo de codificação estranho, onde meus diretórios locais têm nomes diferentes dos diretórios do meu servidor.
Isso funciona em 18.04 ou alguém pode pensar em uma boa solução alternativa?
O sistema operacional e o sistema de arquivos não permitem isso
O Ubuntu e seus sistemas de arquivos (ext3, ext4, etc.) não permitem um arquivo e uma pasta com nomes idênticos no mesmo diretório.
Portanto,
nautilus
não permite renomear uma pasta para um nome de arquivo existente.No entanto, os sistemas de arquivos Ubuntu (GNU/Linux em geral) diferenciam maiúsculas de minúsculas. Você pode ter uma pasta chamada Artigos e um arquivo chamado artigos no mesmo local. Observe que o nome da pasta começa com maiúscula
A
, enquanto o nome do arquivo começa com minúsculaa
.Você pode usar qualquer convenção CaPiTaLiZaTion que desejar para suas pastas e arquivos.
Uma alternativa
Uma alternativa é criar um arquivo chamado
index.html
dentro de cada pasta onde você deseja que a pasta e o arquivo tenham o mesmo nome. Nomear seu arquivo HTMLindex.html
e colocá-lo em uma pasta chamada, por exemploexample.com/articles/title
, de modo que o caminho completo sejaexample.com/articles/title/index.html
, também realizará o que você está pedindo.Quando alguém digita,
https://example.com/articles/title
o servidor da Webindex.html
exibe a página e os navegadores não mostram o arquivoindex.html
. Ele vai mostrar apenashttps://example.com/articles/title
.Da mesma forma, você pode ter um arquivo chamado
https://example.com/article/index.html
para mostrar o que deseja quando alguém digitahttps://example.com/article
.Obrigado a Harry pela alternativa e alguns outros pontos.
A pergunta é uma possível duplicata de https://stackoverflow.com/questions/34550299/aws-s3-hosting-url-rewrite . Se você olhar nos comentários, verá que o caso de uso exato dele é remover o .html de suas URLs.
Embora a resposta aceita forneça uma solução válida e funcional, acho que esse é um caso do problema XY . Nesse caso, o que você realmente precisa é de um sistema de reescrita de URL , que dispense completamente o problema de convenção de nomenclatura. Embora o artigo anterior não se aplique ao AWS S3, ele explica o conceito muito bem. Infelizmente, como o S3 não é um servidor da Web em si, ele não possui a funcionalidade de regravação de URL, mas possui redirecionamentos de página da Web que, conforme declarado na resposta da pergunta duplicada, podem fazer isso.