O BSD ls
do OS X não suporta o argumento -I
presente no GNU ls para filtrar os tipos de arquivo.
Você pode executar a seguinte expressão que retorna todos os arquivos no diretório atual que não têm uma extensão .o
e, caso contrário, imprime o mesmo formato que ls -l
:
find * -maxdepth 0 ! -name '*.o' -print0 | xargs -0 ls -dl
Você pode criar uma função para isso em ~/.zprofile
, para poder executá-la digitando lso <extension>
:
function lso {
find * -maxdepth 0 ! -name "*.$1" -print0 | xargs -0 ls -dl
}
Não é adequado como um substituto completo de ls
, pois não suporta argumentos.
Exemplo de saída:
$ ls -l
total 8
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.c
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.o
-rw-r--r-- 1 danielbeck staff 278 31 Aug 06:52 pi.py
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.pyc
$ lso
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.c
-rw-r--r-- 1 danielbeck staff 278 31 Aug 06:52 pi.py
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.pyc