Aqui está a saída do ls -al
comando:
total 280K
drwxrwxr-x 2 enan enan 4.0K Jun 28 09:59 ranger/
drwxrwxr-x 2 enan enan 4.0K Jun 8 23:26 scripts/
-rw-rw-r-- 1 enan enan 49 Jun 4 18:19 caps_to_ctrl.sh
-rw-rw-r-- 1 enan enan 739 Jun 4 18:19 cmus.theme
-rw-rw-r-- 1 enan enan 8.6K Jun 4 18:19 compton.conf
-rw-rw-r-- 1 enan enan 5.9K Jun 22 09:39 config
-rw-rw-r-- 1 enan enan 859 Jun 14 12:13 i3blocks.conf
-rw-rw-r-- 1 enan enan 4.7K Jun 14 12:13 init.el
-rw-rw-r-- 1 enan enan 8.7K Jun 28 11:22 init.vim
-rw-rw-r-- 1 enan enan 815 Jun 14 12:13 install.sh
-rwxrwxr-x 1 enan enan 142 Jun 4 18:19 lock.sh*
-rw-rw-r-- 1 enan enan 1.1K Jun 21 13:30 README.md
-rw-rw-r-- 1 enan enan 197K Jun 14 12:13 screenshot.png
-rw-rw-r-- 1 enan enan 1.2K Jun 20 21:51 Session.vim
-rw-rw-r-- 1 enan enan 427 Jun 9 13:46 tmux.sh
Você pode ver que há um número entre as permissões do arquivo -rw-rw-r--
e o proprietário do arquivo enan
. Esse número é o número de links físicos do arquivo. Mostrar isso na saída pode ser útil para alguns casos, mas no momento, não preciso disso e às vezes me distrai. Você pode ver, eu tinha uma maneira de remover a data da última modificação da saída ls -al
porque não preciso dela agora.
Então, como posso remover o número de links físicos da saída do ls -al
comando? E qual é a importância de ter o número de links físicos e a data da última modificação sendo mostrados na saída do comando? Quero dizer, se algum de vocês usar essas informações, me diga por que e como você faz isso, porque eu não quero ocultar involuntariamente um comportamento que eu deveria usar.
Se você não quiser ver os links que estão na segunda coluna, você pode canalizar
ls -al
paraawk
removê-lo:Isso imprimirá todas, exceto a segunda coluna, usando o delimitador padrão, neste caso, que é um espaço.
No meu ambiente, as colunas da data da última modificação são 6, 7 e 8 usando o espaço como delimitador para se livrar delas e da segunda coluna:
Se você não precisar ou quiser ver algumas das colunas, poderá usar a sintaxe acima como modelo para remover as que desejar. Não vai doer nada. Se você quiser apenas ver todas as colunas para não perder nada, use o padrão:
Se você quiser um alias, adicione o seguinte a ~/.bashrc:
Essa é uma função que se comporta da mesma maneira sem ter que levar em conta e escapar das aspas simples e duplas. Usei
la
comoll
dá um erro de sintaxe pois já é um alias no meu ambiente.Para remover a contagem de links físicos da saída de
ls -l
enquanto ainda deixa o restante da linha intacto:A
sed
substituição removerá o primeiro conjunto de dígitos e qualquer espaço antes dele em cada linha após a primeira linha (a primeira linha contém ototal
).Como uma função
Essa função invoca
ls -l
com qualquer outro argumento de linha de comando fornecido pelo usuário à função antes de enviar o resultado por meio desed
.Ao usar
command ls
, garantimos que, se mais tarde você decidir renomear a função parals
, a função não chamará a si mesma recursivamente.Exemplo:
Uma variação da função que age exatamente como
ls
, a menos que você usels -l
:A função faz sua própria análise de linha de comando para detectar se a
-l
opção foi usada (e também não foi desativada posteriormente pelo uso de-1
). Se fosse, colocamos uma bandeira. Mais tarde, se o sinalizador foi definido, filtramos a saída dels
throughsed
. Se o sinalizador não foi definido, apenas passamos a saída como está pelocat
.Com o ast-open
ls
(também o builtinls
do ksh93 se ele foi incluído e/opt/ast/bin
está à frente do/bin
)$PATH
, você pode especificar completamente o formato de saída e omitir o número de links (%3(nlink)u
) lá: