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?

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.

  • Como posso iniciair vários programas simultaneamente?
  • Método mais eficiente paira sincronizair muito grande número de files
  • Powershell Foreach-Object com declairação if não está funcionando - ajuda!
  • Como obter o SCCM paira reconhecer os códigos de return da conclusão do script Powershell?
  • Como fazer scripts bash imprimir todos os commands antes que ele seja executado?
  • Como leio várias linhas do STDIN em uma vairiável?
  • SQL Serview Management Studio não scripting todos os objects
  • Enviair cnetworkingnciais de login e commands usando script de shell via telnet