shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] find com prune


From: Moacir Souza
Subject: Re: [shell-script] find com prune
Date: Thu, 2 Feb 2012 17:56:43 -0200

     Emerson,

    Você só pode usar o find? Porque existem soluções mais simples para
mostrar apenas arquivos do diretório atual. Olha uma delas, feita em uma
máquina AIX:

uatu@dfcdsrvp013 /home/uatu/teste $ uname -a
AIX dfcdsrvp013 1 7 00CDEF034C00

uatu@dfcdsrvp013 /home/uatu/teste $ ls -l
total 0
-rw-r--r--    1 uatu     system            0 Feb 02 17:56 a
-rw-r--r--    1 uatu     system            0 Feb 02 17:56 b
-rw-r--r--    1 uatu     system            0 Feb 02 17:56 c
drwxr-xr-x    2 uatu     system          256 Feb 02 17:55 dir1
drwxr-xr-x    2 uatu     system          256 Feb 02 17:55 dir2

uatu@dfcdsrvp013 /home/uatu/teste $ ls -Fl | grep -v "\/$"
total 0
-rw-r--r--    1 uatu     system            0 Feb 02 17:56 a
-rw-r--r--    1 uatu     system            0 Feb 02 17:56 b
-rw-r--r--    1 uatu     system            0 Feb 02 17:56 c

Abraços,
Moacir Filho

2012/2/2 Rodrigo Boechat <address@hidden>:
> Eu mesmo não sei. Dei a ideia de usar o bash pelo que o Julio escreveu...
> Bom. Em todo caso.
> Teste essa linha e mande o resultado:
> ls -l | sed -n "s/^[rwx-]\{10\}  [0-9] [a-zA-Z]* [a-z]* *[0-9]*
> [a-zA-Z]\{3\} [0-9: ]\{8\} \(.*\)/\1/p"
>
> Aqui o resultado foi a listagem dos nomes de arquivos contidos no
> diretório atual.
>
> Espero ter ajudado.
> :)
>
> Em 02-02-2012 17:27, Joao Lopes escreveu:
>> o -path é um argumento do comando find
>> nada haver com o ksh
>>
>>
>> Em 2 de fevereiro de 2012 16:40, Emerson Domingues Souto - H2M<
>> address@hidden>  escreveu:
>>
>>> **
>>>
>>>
>>> O ksh parece ser muito fraquinho mesmo ..... nem o -path ele tá
aceitando:
>>>
>>> $ find . -type d -path ./dir -prune -o -print
>>> find: 0652-017 -path is not a valid option.
>>> $
>>> $ uname -a
>>> AIX VAWS01 3 4 000301544C00
>>>
>>> Tem alguma outra forma ?
>>>
>>> Emerson Domingues Souto
>>> Tecnologia da Informação
>>> Marítima Seguros S/A
>>> Fone: 11 3156-1017
>>>
>>>
>>>
>>>> -----Mensagem original-----
>>>> De: address@hidden
>>>> [mailto:address@hidden] Em nome de Julio C. Neves
>>>> Enviada em: quinta-feira, 2 de fevereiro de 2012 16:31
>>>> Para: address@hidden
>>>> Assunto: Re: [shell-script] find com prune
>>>>
>>>> Emerson, meus pêsames. Essa sintaxe do ksh é muito ruim e já
>>>> fui vítima dela muitas vezes (a do sort do UNIX ainda é pior).
>>>>
>>>> O -prune deve ser usado com o -path e com a opção -o (ou) para negar.
>>>>
>>>> A brincadeira é assim: vc especifica com -path os diretórios
>>>> que vc quer listar e o -prune não permite a invasão desses
>>>> diretórios. Veja:
>>>>
>>>> $ find . -path ./dir\* -prune -print
>>>> ./dir1
>>>> ./dir
>>>>
>>>> Mas veja tb:
>>>>
>>>> $ find . -type d -print
>>>> .
>>>> ./dir1
>>>> ./dir
>>>>
>>>> Quase a mesma coisa, não é?
>>>>
>>>> Mas vc deve ter reparado que sob o diretório corrente, eu
>>>> tenho somente 2
>>>> diretórios: dir e dir1. Se usar a opção -o (ou) para negar (seria um
>>>> "senão") esses diretórios, aí eu estaria listando tudo que
>>>> não fossem eles.
>>>> Assim:
>>>>
>>>> $ find . -type d -path ./dir -prune -o -print
>>>>
>>>> Nesse caso, listaria todos os arquivos do meu diretório corrente.
>>>>
>>>> A única vantagem desse tipo de construção sobre o -maxdepth é
>>>> que dessa forma eu posso selecionar quais diretórios eu
>>>> pretendo listar, independente de seus níveis e o -maxdepth só
>>>> me permite especificar a profundidade que o find mergulhará,
>>>> independente de seus diretórios.
>>>>
>>>> Abcs,
>>>> Julio
>>>> *Já foi lançado "Bombando o
>>>> Shell<http://www.brasport.com.br/index.php?dispatch=products.v
>>>> iew&product_id=666>
>>>> ". *
>>>> *Show **de interfaces gráficas sob Shell!*
>>>> *
>>>> *
>>>>
>>>>
>>>>
>>>> Em 1 de fevereiro de 2012 15:30, Emerson Domingues Souto -
>>>> H2M<  address@hidden>  escreveu:
>>>>
>>>>> **
>>>>>
>>>>>
>>>>> Estive lendo o manual e entendi que o -prune faz com que o
>>>> find liste
>>>>> os arquivos do diretório corrente, sem se aprofundar nos
>>>> subdiretórios
>>>>> (o contrário do -depth)
>>>>>
>>>>> O problema é que estou usando -prune e o find está listando
>>>> apenas o
>>>>> diretório corrente e não está listando os arquivos.
>>>>>
>>>>> O que eu preciso é que o find liste apenas os arquivos do diretório
>>>>> corrente, ou seja, no meu exemplo é para ele listar apenas
>>>> os arquivos
>>>>> arq1.txt e arq2.txt
>>>>>
>>>>> Alguém pode me ajudar ?
>>>>>
>>>>> Segue exemplo de comando find com -prune que eu executei e não me
>>>>> trouxe o resultado desejado:
>>>>>
>>>>> # pwd
>>>>>
>>>>> /tmp/TESTE
>>>>>
>>>>> # ls -l
>>>>>
>>>>> total 32
>>>>>
>>>>> -rw-r--r-- 1 sqlsp informix 71 Feb 01 14:45 arq1.txt
>>>>>
>>>>> -rw-r--r-- 1 sqlsp informix 134 Feb 01 14:45 arq2.txt
>>>>>
>>>>> drwxr-xr-x 2 sqlsp informix 512 Feb 01 14:46 dir1
>>>>>
>>>>> drwxr-xr-x 2 sqlsp informix 512 Feb 01 14:46 dir2
>>>>>
>>>>> # find .
>>>>>
>>>>> .
>>>>>
>>>>> ./arq1.txt
>>>>>
>>>>> ./arq2.txt
>>>>>
>>>>> ./dir1
>>>>>
>>>>> ./dir1/arq3.txt
>>>>>
>>>>> ./dir1/arq4.txt
>>>>>
>>>>> ./dir2
>>>>>
>>>>> ./dir2/dir5.txt
>>>>>
>>>>> # find . -prune
>>>>>
>>>>> .
>>>>>
>>>>> # uname -a
>>>>>
>>>>> AIX VAWS01 3 4 000301544C00
>>>>>
>>>>> Emerson Domingues Souto
>>>>>
>>>>> Tecnologia da Informação
>>>>>
>>>>> Marítima Seguros S/A
>>>>>
>>>>> [As partes desta mensagem que não continham texto foram removidas]
>>>>>
>>>>>
>>>>>
>>>>
>>>> [As partes desta mensagem que não continham texto foram removidas]
>>>>
>>>>
>>>>
>>>> ------------------------------------
>>>>
>>>> ----------------------------------------------------------
>>>> 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
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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
>
>



-- 
==========================================
Moacir da Cruz Souza Filho

Analista de Sistemas: Suporte Unix Avançado
Mestrando em Ciências da Computação
Bacharel em Engenharia da Computação
Técnico em Eletrônica
Linux user #449600
==========================================


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]