Como faço para listar apenas arquivos de código-fonte quando digito ls no OSX?

1

quando eu digito ls, eu não quero ver arquivos .o porque toda vez que eu ls, ele vê X.cpp X.h X.o, como eu não listo os arquivos .o?

    
por snihalani 01.09.2012 / 19:33

2 respostas

2

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
    
por 01.09.2012 / 19:36
0

Se você tem setopt extended_glob , pode fazer algo como ls -ld ^*.o e talvez atribuí-lo a um alias de sua preferência.

    
por 21.11.2012 / 03:30