Deixar o diretório fora usando ls

1

Estou tentando obter uma lista vertical de ls , que é recursiva, mas deixa de fora um único diretório chamado node_modules .

Eu usei:

ls -lt -h -R

Isso me deixa uma lista muito longa que é vertical, legível e recursiva. Mas tem o diretório node_modules incluído e que tem muitos arquivos e diretórios.

    
por Callum Linington 27.04.2014 / 16:01

1 resposta

2

Você pode usar -I para ignorar o diretório como Stephane sugerido ou, melhor, evite usar ls no total. Basta usar find , o que é muito melhor para esse tipo de coisa e pode lidar com nomes de arquivos estranhos normalmente:

find . | grep -v node_modules

Ou, para uma abordagem mais segura, que possa lidar corretamente com novas linhas em nomes de arquivos:

find . -not -regex ".*node_modules.*"

ou, para não-GNU find :

find . ! -regex ".*node_modules.*"

Se você puder ter node_modules como parte de um nome de arquivo e não quiser pular esse, use-o:

find . -not -regex "./node_modules.*"
    
por 27.04.2014 / 16:43

Tags