Case Insensitive no sistema de arquivos do Ubuntu 20.04.4 LTS

Olá pessoal, uso o Linux já há algum tempinho, creio que está perto dos 2 anos, mas ainda me considero um usuário novo, iniciante, no caso, pois sei dar alguns comandos básicos (algo que todo usuário Linux deva saber), porém desconheço o que fazem, etc.
Minha dúvida é sobre o sistema de arquivos, mais especificamente, usando o terminal, estou trabalhando como desenvolvedor, e por algum motivo, muitos dos endpoints da API não funcionam em minha máquina, estou suspeitando que seja por isso.
Há algum meio de tornar as pastas do sistema Linux em Case Insensitive?
Exemplo:
Captura de tela de 2022-06-17 11-17-31

Queria poder acessar as pastas independente delas serem minúsculas ou maiúsculas, achei esse artigo na internet: Using the Linux kernel's Case-insensitive feature in Ext4
mas não me senti seguro para segui-lo, pois tenho muita coisa pessoal e de trabalho, na minha máquina, essas são as minha configurações do PC:


Espero que possam responder minha dúvida, e me dar algum passo a passo em que eu me sinta mais seguro, em não prejudicar meu sistema de arquivos, desde já, agradeço!

Você pode fazer link simbólico para a pasta que deseja dando o nome do link “documento”.
As demais é não dar nomes maiúsculos mesmo.
Não sei se da para remover o suporte ao case sensitiva.

leia

man ln

Parâmetro -s

Isso é uma configuração do shell (o interpretador dos comandos) e não do sistema de arquivos. Como uso bash e não zsh, não posso te dar o comando exato pra fazer isso mas tenho certeza que uma busca por “zsh case insensitive completion” no Google vai te levar a resposta correta. Não esqueça de depois comentar a solução aqui para os outros usuários do fórum.

2 curtidas

O Bash tmb é case sensitivo.

Pelo bash também é necessário usar Case Sensitive, eu queria que o meu sistema como um todo ficasse Case Insensitive, tanto o zsh como o bash.

Eu não quis dizer que o bash é case insensitivo por padrão, só citei ele pra dizer que eu não poderia testar como fazer essa configuração no zsh. Enfim, usando o bash como shell é possível fazer isso com:

echo "set completion-ignore-case on" >> ~/.inputrc
bind -f ~/.inputrc

De acordo com esse link (não testado), é possível fazer isso no zsh com o comando (copie e cole as duas linhas completas de uma vez):

echo "autoload -Uz compinit && compinit
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'" >> ~/.zshrc

Talvez você precise fechar o terminal atual e abrir novamente para ser aplicado. Os arquivos de configuração para ambos shells está sendo salvo na /home então mesmo que você troque de distro, desde que não formate a /ħome, não precisará fazer tudo novamente.

Muito pelo contrário, é justamente os sistemas de arquivos, que fazem estás distinções entre maiúsculas e minusculas, inclusive a grande maioria são “case-sensitive”, com algumas exceções como nos casos do NTFS Windows, VFAT, FAT32, que não diferenciam ARQUIVO.txt de arquivo.txt. Para Saber mais segue alguns links.

Diferenciação de maiúsculas e minúsculas
Diferença entre Linux e Windows Case-Sensitive


No caso do Ext4 foi introduzido a partir da versão 5.2 do kernel, a opção para com o mesmo passe à não distinguir entre maiúsculas e minúsculas, como referenciado nos links abaixo.

Case-insensitive Ext4
Suporte opcional para Ext4
* Lembrando que não é somente o ext4 que oferece esta opção, o ZFS já integra isso também


Agora em relação à sua resposta a unica coisa que está habilitando é que, a conclusão automática, passe a ignorar, assim quando digitar cd downloads e pressionar Tab, ele irá completar com cd Downloads, se desejar este comportamento para o zsh, basta editar o arquivo de configuração presente na HOME, ~/.zshrc e descomentar a seguinte linha.

# Uncomment the following line to use case-sensitive completion.
CASE_SENSITIVE="true"

Em relação ao habilitar à opção casefold, sem precisar formatar novamente, apenas para testes, segue o seguinte exemplo.

  1. Aloque espaço para um arquivo
fallocate -l 1G disco.img
  1. Agora formate o mesmo passando a opção casefold
mkfs.ext4 -O casefold disco.img
  1. Monte como este exemplo * a opção -m criará a pasta se não existir, e a -o user garante permissão ao usúario.
sudo mount -o user disco.img -m disco
  1. Crie uma pasta, dentro do diretório disco e adicione o atributo +F
mkdir UPDIR; chattr +F $_ ; cd $_
  1. Crie uma nova pasta, com o comando seguinte.
mkdir lowdir; chattr +F $_
  1. Agora adentre a pasta criada com.
cd LOWDIR

* Note que criamos uma pasta com letras minusculas, mas acessamos com letras maiusculas, e como não tem haver com o interpretador. Se perguntar o porque de criarmos em um subdiretório é que o diretório raiz, não foi formatado com casefold.


1 curtida