Isac, Se você quer simplesmente não enviar a "sujeira", i.e., as mensagens de erro lançadas pela Shell, para a tela, adicione 2>/dev/null ao final do comando que fica dentro do for. Ficaria assim no seu caso:
for i in ./diretorio/* do mv "$i" ./temp/ 2>/dev/null done Esse redirecionamento também é uma boa idéia para criar logs das suas aplicações, mostrando os erros encontrados no meio do caminho para fins de histórico ou consultas posteriores. Atenciosamente, Moacir Filho 2009/4/2 Isac Luz <isac....@gmail.com> > > Prezados, > > Tenho a seguinte situação. Preciso efetuar a varredura em um diretório e > se houver arquivos executar um processo, porém se o diretório está vazio da > pau conforme abaixo: > > i...@pc:~$ for i in ./diretorio/* ; do mv "$i" ./temp/ ; done > -su: mv./diretorio/*: Arquivo ou diretório não encontrado > > Alguém saberia como fazer para não retornar nada quando estiver vazio, ou > como fazer um teste diferente de ls para saber se o diretório está vazio? > > testei com o ls e ele também retorna sujeira na tela: > i...@pc:~$ if ls ./diretorio/* ; then echo "tem arquivo" ; else echo > "diretorio vazio" ; fi > */usr/bin/ls: ./**diretorio**/*: Arquivo ou diretório não encontrado* > diretorio vazio > > Alguma solução diferente ? > > [As partes desta mensagem que não continham texto foram removidas] > > -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Moacir da Cruz Souza Filho -Analista de Sistemas: Suporte Unix Avançado Serviço Federal de Processamento de Dados -Mestrando em Ciências da Computação Universidade de Brasília -Bacharel em Engenharia da Computação Escola Politécnica de Pernambuco Universidade de Pernambuco -Técnico em Eletrônica Escola Técnica Federal de Pernambuco -Linux user #449600 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Página pessoal: http://moacir.souza.googlepages.com =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=