Se você quiser listar todos os arquivos, exceto aqueles dentro de um determinado diretório, digamos, notHere , você pode usar o comando find para fazer como
find . -path ./notHere -prune -o -type f -print
Explicação:
-
.: o diretório para iniciar ofindem -
-path ./notHere: inicie uma regra que corresponda ao caminho./notHere -
-prune: impede quefindentre no diretório com a correspondência atual -
-o: adicione umorpara especificar o que queremos que aconteça se a primeira regra não corresponder a -
-type f: corresponde apenas a arquivos, não a diretórios (remova isso se quiser ver as entradas do diretório também) -
-print: muitas vezes não é necessário, pois é a ação padrão, mas algumas versões defindainda querem que você diga expressamente que deseja que o resultado seja impresso
Você mencionou querer outra saída (especificamente ls -ll ) do que apenas a lista de nomes de arquivos. O find geralmente tem um built-in para ajudar nisso, mas não essas opções específicas para ls . Você pode substituir o -print flag acima por -ls e ver se esse conjunto de ls está próximo o suficiente para você:
find . -path ./notHere -prune -o -type f -ls
ou se isso não for bom o suficiente, você pode ter find executando o comando que você quer em vez de tentar processar a saída separadamente como:
find . -path ./notHere -prune -o -type f -exec ls -ll {} +