[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Script que lista os executáveis de um diretório
From: |
Flavio Junior |
Subject: |
Re: [shell-script] Script que lista os executáveis de um diretório |
Date: |
Mon, 28 Aug 2006 09:41:36 -0300 |
Sei que não é o escopo do seu script, mas o find nao faz isso mto bem ja ?
O seu problema de too many arguments deve ser devido a um arquivo com
" " espaço em branco no nome, isso (sem as aspas citadas pelo Thiago)
faz com que a condicao interprete errado a comparação.
Bom, um exemplo de find para buscar arquivos executaveis seria:
$ find /diretorio/de/busca -perm -111 -type f
Isso busca do diretorio /diretorio/de/busca pra baixo todos os executaveis
Se quiser somente no diretorio atual, adicione a opcao -maxdepth 1 e
variacoes :)
Boa sorte,
Flávio do Carmo Junior aka blk1d
On 8/27/06, Tiago Barcellos Peczenyj <address@hidden> wrote:
coloque as suas variaveis entre "" quando usar o [ ]
e podes usar a opção -a (and lógico)
if [ -x "$i" -a ! -d "$i" ]; ...
On 8/27/06, Rodrigo <address@hidden> wrote:
> Olá.
>
> Desenvolvi o script que segue abaixo para listar os arquivos
> executáveis de um diretório e o mesmo está apresentando um erro na
> linha 19:
>
> #!/bin/bash
> #
> # Lista os arquivos executaveis do diretorio atual
> #
>
> ls -l > /tmp/$$
> qtd=`grep -c '^-..x' /tmp/$$`
> if [ $qtd -eq 0 ]
> then
> echo "Nehum arquivo executavel encontrado neste diretorio."
> elif [ $qtd -ge 2 ]
> then
> echo "Existem $qtd arquivos executaveis neste diretorio."
> else
> echo "Existe $qtd arquivo executavel neste diretorio."
> fi
> for i in *
> do
> if [ -x $i ] && [ ! -d $i ] # Esta eh a linha que apresenta erro
> then
> ls $i
> fi
> done
> rm /tmp/$$
>
> O estranho é que dentro de determinados diretórios ele executa
> perfeitamente, porém em outros ele lista a quantidade de arquivos
> executáveis, lista também os arquivos encontrados e apresenta
> juntamente o erro "line 19: [: too many arguments". Não consegui
> entender o erro e nem porque ele aparece somente em alguns diretórios.
> Gostaria de obter ajuda dos amigos no que for possível.
> Muito obrigado.
>
> Rodrigo
>
>
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
--
Tiago B Peczenyj
Linux User #405772
# cd /pub
# more beer
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos