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: Julio C. Neves
Subject: Re: [shell-script] find com prune
Date: Thu, 2 Feb 2012 16:31:23 -0200

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.view&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]



reply via email to

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