Percorrer apenas arquivos - Shell Script [RESOLVIDO]

1. Percorrer apenas arquivos - Shell Script [RESOLVIDO]

Daniel Resende da Silva
danielRS

(usa Ubuntu)

Enviado em 19/11/2012 - 14:02h

Boa tarde,

Galera to tentando fazer um for aqui em shell Script porém sou meio leigo, estou aprendendo ainda, cuja funcionalidade seja percorrer apenas arquivos de um determinado diretório, e não seus subdiretórios também, eu estava utilizando o seguinte comando:


for i in ` find $DIR -type f`
do
...
done

Onde: DIR é uma váriavel que criei que recebe o nome do dirétorio desejado.

Alguém pode me ajudar, a fazer com que esse for não entre em subdiretórios ?

Obg


  


2. Re: Percorrer apenas arquivos - Shell Script [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 19/11/2012 - 14:05h

Acrescente o parâmetro -maxdepth 1, q ele vai pegar apenas o primeiro nível.


3. Re: Percorrer apenas arquivos - Shell Script [RESOLVIDO]

Daniel Resende da Silva
danielRS

(usa Ubuntu)

Enviado em 19/11/2012 - 14:37h

Vlww Renato deu certo, obrigado !!

Porém está uma msg quando executo um comando para gerar o hash do arquivo, "Permissão Negada" sendo que acho que já dei todas permissões.Dei um ls -l e no arquivo está as seguintes :


-rwxr-x--x 1

Alguém sabe se tem alguma permissão do arquivo faltando ?

Se o meu programa for ler outros arquivos, preciso de algum comando especial p/ ele ?


4. Re: Percorrer apenas arquivos - Shell Script [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 19/11/2012 - 14:52h

Para fazer o hash, o arquivo tem de dar permissão de leitura para o processo. Se o arquivo pertence a root:root, com permissões 751, e você tentar calcular o hash como outro usuário que não pertença ao grupo root, então você vai tomar erro de acesso negado (embora consiga executar o programa!).

E outra coisa: fazer "for a in `find ...`; do faz_algo_com $a; done" é potencialmente problemático, especialmente se houver muitos arquivos no diretório ou arquivos com nomes não usuais. É geralmente mais seguro e mais eficiente fazer a mesma coisa com "find ... -exec faz_algo_com '{}' ';'" ou, preferencialmente (se o comando faz_algo_com suportar receber nomes de vários arquivo de uma só vez), "find ... -print0 | xargs -0 faz_algo_com".


5. Sintaxe find ... -exec

Daniel Resende da Silva
danielRS

(usa Ubuntu)

Enviado em 19/11/2012 - 19:59h

Vlww Paulo sua dica me ajudou a resolver meu problema !!
Fico grato por sua ajuda !!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts