Em algum lugar ao longo do caminho, estraguei meu comando ls e agora recebo essa ordem ao executar
$ ls -AhHl --color=auto
-rwxr-xr-x 1 clang clang 640 Mar 1 02:46 apple-touch-icon-precomposed.png
-rwxr-xr-x 1 clang clang 784 Jul 12 02:54 crossdomain.xml
-rwxr-xr-x 1 clang clang 1.2K Mar 1 02:46 favicon.ico
drwxr-xr-x 8 clang clang 4.0K Jul 12 23:50 .git
-rw-r--r-- 1 clang clang 17 Feb 29 19:48 .gitignore
-rwxr-xr-x 1 clang clang 1.4K Jul 12 02:54 humans.txt
O que eu fiz isso fez com que eu ignorasse os arquivos de pontos e, em vez disso, ordenasse pela primeira letra?
Saída de locale
:
$ locale
LANG=
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
ls
de língua estrangeira (por exemplo, japonês) os nomes de arquivo Unicode como????????
export LC_ALL="C"
aos seus arquivos de ponto, você perderá efetivamente o suporte à sua localidade real em todos os utilitários com reconhecimento de localidade. Embora o problema de impressão que @ohho aponte possa ser solucionado com a resposta de Faroul , você apresentará problemas de classificação : a classificação ocorrerá apenas pelo valor de byte, resultando em uma classificação que (a) é sensível a maiúsculas e minúsculas e (b) invariavelmente coloca caracteres acentuados. depois de todos os sem sotaque.Para evitar alterações em todo o sistema sem necessidade real, é possível alterar apenas a maneira como
ls
funciona para o usuário atual adicionando o alias ao.bashrc
:Isso classifica os arquivos de ponto primeiro, permite manipular adequadamente (mostrar e classificar) conjuntos de caracteres "incomuns", como cirílico. O único culpado de que a classificação fará distinção entre maiúsculas e minúsculas.
Fonte: http://ubuntuforums.org/showthread.php?t=816753
fonte
LC_ALL
já esteja definido como algo incompatível com a classificação / elevação de arquivos de ponto na parte superior dals
lista, use-oalias ll='LC_ALL=C ls -alF'
, poisLC_COLLATE
não substituiLC_ALL
.Configuração
funciona bem para mim - trema e "ls -la" lista primeiro os arquivos de ponto.
fonte
UTF-8
- não serão classificados corretamente.C.UTF-8
é um código de idioma inválido, portanto, o código de idioma é revertido paraC
. Você ainda perde o suporte a UTF-8. De fato, é ainda pior, já que aLC_ALL=C
maioria dos programas exibe a maioria dos caracteres multibyte corretamente , mas comLC_ALL=something_invalid
alguns programas não (como `ls).locale
parece haver erro comLC_ALL=C.UTF-8
: gist.github.com/Carpetsmoker/ef09b3734b29372939f97107413d7733 - que está no Arch Linux.A página de manual ls (1) lista:
Isso parece mudar a forma como os períodos são classificados e agrupa primeiro os arquivos de ponto. Eu tenho:
no meu ~ / .bashrc.
fonte
Uma ideia fora da parede
Eu realmente gosto de usar diferentes métodos de classificação com
ls
, especialmente-rt
(que é classificado por imer
modificado inversot
). Então, decidi tentar algo louco e usar o awk para fazer minha classificação.Agora, em vez de definir um alias do bash, eu defino uma função bash (porque os aliases só podem anexar argumentos no final, mas as funções podem usá-los em qualquer lugar)
Para ver os resultados
Vamos criar alguns arquivos de exemplo:
Usando ls simples
Usando minha função que filtra com awk
Você pode ver minha implementação disso aqui https://github.com/RichardBronosky/dotfiles/commit/6170c0a9
O mais importante é que é uma estrutura para ajustar sua
ls
saída. Você pode fazer o que quiser com esse filtro awk. Você pode querer que sejam diretórios, arquivos de ponto e todo o resto. Depois de saber como lidar com suas cores xterm, não é muito difícil. Depende totalmente de você.fonte
Pode tentar isso no seu arquivo .bashrc ou / etc / bashrc:
Isso pressupõe que você esteja executando uma versão um pouco mais recente do ls que use "--group-directory-first" como uma opção. Obviamente, você pode ajustar as opções de LS ao seu gosto.
fonte
--group-directories-first
tem a ver com "show dotfiles first"?