Caso insensível `ls` para catalina / apfs? -- acos campo com terminal campo com command-line campo com zsh camp apple Relacionado O problema

case insensitive `ls` for Catalina / APFS?


2
vote

problema

português

Eu estou tentando encontrar uma maneira de obter o estoque macos ls ou (mais provável) o gnu ls aka gls para mostrar meus arquivos e amp; pastas em caso insensível ordem.

Todos os meus esforços resultaram em letras minúsculas sendo classificadas após as letras maiúsculas.

⚠️ Há muitas respostas desatualizadas que não funcionam mais!

Essa mesma pergunta foi feita sobre este fórum em outubro de 2011 (e em agosto de 2013 em Stack estouro), mas essas respostas não funcionam mais em macos em 2020.

O que eu tentei que não funciona:

    .
  1. LC_COLLATE não parece ter algum efeito. Eu tentei essas variações:

      LC_COLLATE="en_US.UTF-8"  LC_COLLATE="cs_CZ.ISO8859-2"  LANG="en_US.UTF-8" LC_COLLATE="en_US.UTF-8"    

    Não houve efeito perceptível.

  2. aparentemente ls -f ou gls -U usado para trabalhar para o HFS +, embora a saída fosse suposta para ser "sortida", mas aparentemente de alguma forma em HFS + "sorted" foi ¿acidentalmente? ¿Coincidentemente? caso-insensível? Eu acho? Qualquer que seja a razão, já não funciona, presumivelmente porque estamos usando o APFs agora.

  3. "apenas pipe através de sort -f !" nunca foi realmente uma resposta, mas alguém sempre parece sugerir de qualquer maneira. Eu quero ser capaz de usar todos os outros recursos de ls / gls incluindo cor e ls0 que não funciona se tivermos que tubo através de outro comando.


Existe algum método oculto por aí que eu poderia ter perdido? Ou esta funcionalidade não é realmente possível? Este último pareceria extremamente estranho para mim, mas as coisas estranhas aconteceram, eu acho.

ps - eu uso ls1 como meu shell padrão de qualquer maneira, por isso, se houver uma maneira de replicar isso com ls2 isso seria ok também .

english

I am trying to find a way to get either the stock macOS ls or (more likely) the GNU ls a.k.a. gls to show my files & folders in case insensitive order.

All of my efforts have resulted in lowercase letters being sorted after the uppercase letters.

xe2x9axa0xefxb8x8f There are lots of outdated answers which no longer work!

This same question was asked on this forum in October 2011 (and in August 2013 on Stack Overflow), but those answers no longer work on macOS in 2020.

What I've tried that does not work:

  1. LC_COLLATE does not seem to have any effect. I have tried these variations:

    LC_COLLATE="en_US.UTF-8"  LC_COLLATE="cs_CZ.ISO8859-2"  LANG="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" 

    There was no noticeable effect at all.

  2. Apparently ls -f or gls -U used to work for HFS+, although the output was supposed to be "unsorted", but apparently somehow in HFS+ "unsorted" was xc2xbfaccidentally? xc2xbfcoincidentally? case-insensitive? I guess? Whatever the reason, it no longer works, presumably because wexe2x80x99re using APFS now.

  3. xe2x80x9dJust pipe it through sort -f!xe2x80x9d was never really an answer, but someone always seems to suggest it anyway. I want to be able to use all of the other features of ls/gls including color and -C which doesnxe2x80x99t work if we have to pipe through another command.


Is there some hidden method out there that I might have missed? Or does this functionality is actually not possible? The latter would seem extremely odd to me, but stranger things have happened, I guess.

P.S. - I use zsh as my default shell anyway, so if therexe2x80x99s a way to replicate this with zsh that would be OK too.

           

Lista de respostas

3
 
vote

Se feito corretamente, o método LC_COLLATE funciona:

Exemplo:

  user@host ~ % export LC_COLLATE="cs_CZ.ISO8859-2" && ls -la total 56 -rw-r--r--   1 user      staff      0 Mar  1 20:39 bin drwx------+  4 user      staff    128 Jan 30 10:51 Desktop drwx------+  3 user      staff     96 Oct  9 04:40 Documents drwx------+  4 user      staff    128 Jan  4 21:11 Downloads drwx------+ 61 user      staff   1952 Nov  2 10:29 Library drwx------+  4 user      staff    128 Oct  9 18:17 Movies drwx------+  3 user      staff     96 Oct  9 04:40 Music drwx------+  5 user      staff    160 Oct 10 03:22 Pictures drwxr-xr-x+  4 user      staff    128 Oct  9 04:40 Public drwxr-xr-x+ 18 user      staff    576 Mar  1 20:40 . -r--------   1 user      staff      7 Oct  9 04:43 .CFUserTextEncoding drwxr-xr-x   3 user      staff     96 Oct 10 17:50 .config -rw-r--r--@  1 user      staff  14340 Dec 26 22:14 .DS_Store drwx------   6 user      staff    192 Nov 22 11:40 .ssh drwx------   2 user      staff     64 Mar  1 20:35 .Trash -rw-r--r--@  1 user      staff   2620 Nov 15 02:44 .zprofile -rw-------@  1 user      staff   1544 Mar  1 20:40 .zsh_history drwxr-xr-x   5 root      admin    160 Sep 29 22:22 ..    

Então simplesmente adicione export LC_COLLATE="cs_CZ.ISO8859-2" para o seu .zprofile / .zshrc / ... e terminal de reinicialização.

Se você usar este locale, você pode experimentar algumas irregularidades em saídas de shell / arquivos de histórico, etc.

Aqui (usando MISTURA US_EN / DE_DE Localidades Im MacOS) Eu tenho algumas entradas irregulares no histórico de comando (isto é .zsh_history) depois de entrar em UMlauts alemães.


Provavelmente a melhor ideia, então: crie um novo arquivo LC_COLLATE personalizado.

 

If done properly the LC_COLLATE method works:

Example:

user@host ~ % export LC_COLLATE="cs_CZ.ISO8859-2" && ls -la total 56 -rw-r--r--   1 user      staff      0 Mar  1 20:39 bin drwx------+  4 user      staff    128 Jan 30 10:51 Desktop drwx------+  3 user      staff     96 Oct  9 04:40 Documents drwx------+  4 user      staff    128 Jan  4 21:11 Downloads drwx------+ 61 user      staff   1952 Nov  2 10:29 Library drwx------+  4 user      staff    128 Oct  9 18:17 Movies drwx------+  3 user      staff     96 Oct  9 04:40 Music drwx------+  5 user      staff    160 Oct 10 03:22 Pictures drwxr-xr-x+  4 user      staff    128 Oct  9 04:40 Public drwxr-xr-x+ 18 user      staff    576 Mar  1 20:40 . -r--------   1 user      staff      7 Oct  9 04:43 .CFUserTextEncoding drwxr-xr-x   3 user      staff     96 Oct 10 17:50 .config -rw-r--r--@  1 user      staff  14340 Dec 26 22:14 .DS_Store drwx------   6 user      staff    192 Nov 22 11:40 .ssh drwx------   2 user      staff     64 Mar  1 20:35 .Trash -rw-r--r--@  1 user      staff   2620 Nov 15 02:44 .zprofile -rw-------@  1 user      staff   1544 Mar  1 20:40 .zsh_history drwxr-xr-x   5 root      admin    160 Sep 29 22:22 .. 

So simply add export LC_COLLATE="cs_CZ.ISO8859-2" to your .zprofile/.zshrc/... and restart Terminal.

If you use this locale you might experience some irregularities in shell outputs/history files etc.

Here (using mixed us_en/de_de locales im macOS) I got some irregular entries in the command history (i.e. .zsh_history) after entering German umlauts.


Probably the best idea then: create a new custom LC_COLLATE file.

 
 
   
   
1
 
vote

Eu concordo que não mudaria o global LC_COLLATE . Basta usá-lo localmente no seu alias:

alias ls="LC_COLLATE=cs_CZ.ISO8859-2 /bin/ls"

Cuidado com o efeito indesejável desta localidade específica. Arquivos que começam com "ch", "ch" ou "ch" serão classificados entre arquivos que Comece com "H" e "i".

Eu gostaria de criar meu próprio arquivo personalizado, vou experimentar isso: https://gist.github.com/shaunsauve/56c30ad45d1261e7164E1b32316EF7C1

 

I agree that I wouldn't change the global LC_COLLATE. Just use it locally in your alias:

alias ls="LC_COLLATE=cs_CZ.ISO8859-2 /bin/ls"

Watch out for the undesirable effect of this particular LOCALE. Files that start with "ch", "CH", or "Ch" will be sorted between files that start with "H" and "i".

I would like to create my own custom file, I'm going to try out this: https://gist.github.com/shaunsauve/56c30ad45d1261e7164e1b32316ef7c1

 
 
0
 
vote

Você pode chegar lá usando LC_COLLATE="cs_CZ.ISO8859-2" .

mas cuidado para esta curiosidade em relação às diferenças entre o comando Stock 'ls' sobre macOS 10.15.4 caixa e abcdefghijklmn4 ( abcdefghijklmn4 Código> ABCDEFGHIJKLMNABCDEFGHIJKLMN8 Via ABCDEFGHIJKLMNABCDEFGHIJKLMN9 ):

  export LC_COLLATE="cs_CZ.ISO8859-2"0   
  export LC_COLLATE="cs_CZ.ISO8859-2"1   

Não há certeza de como export LC_COLLATE="cs_CZ.ISO8859-2"2 e abcdefghijklmn13 fing up classificação abcdefghijklmn14 e export LC_COLLATE="cs_CZ.ISO8859-2"5 de forma diferente com base na mesma locale lexer informações, mas sim.

 

You can get there by using LC_COLLATE="cs_CZ.ISO8859-2".

But watch out for this curiosity regarding the differences between the stock 'ls' command on macOS 10.15.4 box, and gls (GNU ls from coreutils via brew):

xcexbb export LC_COLLATE="cs_CZ.ISO8859-2" && ls -la  -rw-r--r--    1 storm  staff   695  8 nov 06:35 argv.json drwxr-xr-x   61 storm  staff  1952 22 apr 19:02 extensions drwxr-xr-x    4 storm  staff   128  8 nov 06:35 . drwxr-xr-x+ 154 storm  staff  4928 23 apr 10:43 .. 
xcexbb export LC_COLLATE="cs_CZ.ISO8859g-2" && gls -la  total 4 drwxr-xr-x    4 storm staff  128 Nov  8 06:35 . drwxr-xr-x+ 154 storm staff 4928 Apr 23 10:43 .. -rw-r--r--    1 storm staff  695 Nov  8 06:35 argv.json drwxr-xr-x   61 storm staff 1952 Apr 22 19:02 extensions 

Not sure how ls and gls end up sorting . and .. differently based on the same locale lexer info, but it does.

 
 

Perguntas relacionadas

3  Removendo as utilitários de linha de comando integrina do caminho, ZSH  ( Removing the builtin command line utilities from path zsh ) 
Ok, então eu sou um usuário do Linux Power, que eu me sinto mais em casa quando tenho acesso à linha de comando, e estou muito acostumado a usar o GNU Coreuti...

2  Efeitos de mudança de casca  ( Effects of changing shell ) 
Recentemente Apple alterou o shell padrão para zsh a partir bash . No passado, fiz alterações significativas no meu arquivo abcdefghgjklmnabcdefghijklmn3 ...

8  Atualize ZSH em MacOS Mojave  ( Update zsh on macos mojave ) 
no meu macbook pro com macos mojave, minha versão de zsh é 5.3. zsh --version . zsh 5.3 (x86_64-apple-darwin18.0) Essa versão é alguns anos desa...

1  Renomear .app e usando o novo nome com Abra -a  ( Rename app and using the new name with open a ) 
Eu quero alterar o nome do código do Visual Studio para VSCODE para usar o comando open -a vscode . Qualquer ideia de como? ...

7  Eu mudei para Catalina e habilitado ZSH agora minha chave doméstica / fim não funciona no terminal  ( I switched to catalina and enabled zsh now my home end key do not work in termin ) 
Eu mudei para ZSH da Bash de acordo com a atualização em Catalina e tudo está bem, exceto minhas chaves home / final não funcionam mais. Isso pode ser realmen...

3  ITERM ZSH - Perdigo à direita  ( Iterm zsh missing right prompt ) 
Estou usando oh-my-zsh e iterm2. Também permiti o plugin ZSH-VIM-Mode de OH-My-ZSH. Um dos aborrecimentos que encontrei é o meu prompt direito (RPS1 & amp; rP...

-1  Depois de desinstalar oh-my-zsh, meu terminal está bagunçado  ( After uninstalling oh my zsh my terminal is messed up ) 
Esta não é uma pergunta duplicada. Eu já olhei para as respostas para Desinstalado ZSH, terminal ido estranho e, embora eu mude as configurações, ele aind...

1  Como identificar os maiores arquivos em um diretório, incluindo em seus subdiretórios?  ( How to identify the largest files in a directory including in its subdirectories ) 
Eu tenho um diretório com muitos arquivos e subdiretórios. Eu sei que há um pequeno número de arquivos grandes contidos em algum lugar dentro. Qual é uma mane...

5  Corte em CLI não funciona como esperado - retorna linhas completas toda vez  ( Cut in cli doesnt work as expected returns full lines every time ) 
Eu estou executando macos mojave e estou tentando obter uma lista de proprietários de arquivos em determinado caminho. Estou tentando fazer isso assim, mas nã...

1  zsh array da variável não funciona  ( Zsh array from variable does not work ) 
I usando MacOS 10.14.2 (18C54) com ZSH (versão mais recente que não consegui encontrar nenhuma versão com ZSH). Se eu criar uma matriz de uma string funciona....




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.