If / Testando a existência de certos arquivos numerosos [duplicados]

0

No bash, tenho um diretório que contém alguns nomes de arquivos que começam com underscore _ e outros que não.

Eu quero que meu script verifique se uma pasta possui arquivos que não iniciam com _ . Eu escrevo

if [[ -f $dir/[!_]* ]]
  then echo "There are unmarked files."
  else echo "All files marked."
fi 

Mas quando executo usando uma pasta com arquivos que não iniciam com _ , a instrução if tem o efeito oposto do que eu pretendia. Eu listo as entradas na pasta que mostram claramente os arquivos sem _ , mas a saída continua dizendo All files marked.

O que estou perdendo?

    
por obidyne 15.02.2018 / 20:27

1 resposta

0

if find -not -name '_*' -exec false {} +
then
  echo 'all files marked'
else
  echo 'unmarked file found'
fi
    
por 16.02.2018 / 01:24