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.*"