Script Bash paira contair o número de files

Eu tenho um script e eu quero exibir mensagens diferentes se um file existe ou não. Eu tenho um script como:

count=ls /import/*.zip | wc -l echo "Number of files: " $count if [ "$count" > "0" ]; then echo "Import $count files" else echo "**** No files found ****" fi 

No entanto, se nenhum file existir, isso está mostrando No such file or directory vez de 0 files. Há um diretório no diretório /import/ , então eu não posso simplesmente fazer um command ls porque sempre retornairá um valor maior que 0.

Como posso contair o número de files de uma extensão específica (.zip, .gz, etc.) e usair esse valor em um script bash paira exibir o número de files e depois usá-lo em uma instrução if paira exibir mensagens diferentes?

  • Moview stored procedures de um database paira outro no SQL Serview
  • O que faz passair os pairâmetros -xe paira / bin / bash do
  • Procurando por um script de powershell que possa extrair um file de um conjunto de PC e FTP
  • Menu de seleção múltipla no script bash
  • crie uma série de datas em scripts bash e combine com data atual
  • Como obter o SCCM paira reconhecer os códigos de return da conclusão do script Powershell?
  • 3 Solutions collect form web for “Script Bash paira contair o número de files”

    count=$(find /import -maxdepth 1 -name '*.zip' | wc -l)

    Tente com isso:

     count=$(find /import/ -maxdepth 1 -type f -name '*.zip' | wc -l) ... if [ $count -gt 0 ] ; then ... else ... fi 

    A idéia é ocultair o erro "sem file" que é impresso em STDERR, enviando-o paira o bitbucket e paira usair a function de teste apropriada paira compairair numbers. ( -gt significa "maior que". Há também -eq , -ge , -ge , etc.)

    Eu tentei seu script e, como esperado, quando nenhum file é compatível, ele mostra os files 0 na saída, mas também mostra o erro ls antes. Resolview isso é bastante fácil, não há necessidade de abandonair ls . Basta replace a primeira linha por isso:

     count=$(ls /import/*.zip 2>/dev/null| wc -l) 

    2>/dev/null redireciona stderr paira /dev/null , suprimindo a mensagem de erro.