Encontrar todos os ficheiros menos determinado formato [find]

1. Encontrar todos os ficheiros menos determinado formato [find]

Ede
ede_linux

(usa Ubuntu)

Enviado em 13/08/2017 - 06:48h

Olá a todos,

Se quiser encontrar apenas ficheiros .odt utilizo o comando:

find folder/ -iname "*.odt"


Mas caso pretenda encontrar todos os ficheiros menos os com extensão .odt, como faço? Estive a ler o manual do find e não encontrei nada que consegui identificar como útil para essa tarefa.
Encontrei apenas este comando:

find folder/ ! -iname ".odt"


é o melhor caminho?
Obrigado


  


2. Re: Encontrar todos os ficheiros menos determinado formato [find]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 13/08/2017 - 10:21h

Que tal assim:
find /folder/ -type f | egrep -v '*.odt$' 

Para mais de um tipo ao mesmo tempo:
find /folder/ -type f | egrep -v '(*.odt|*.pdf)$' 



3. Re: Encontrar todos os ficheiros menos determinado formato [find]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/08/2017 - 11:08h

Dá para fazer somente com o find usando !:
find diretorio -type f ! -iname *.odt 


type f => traz somente arquivos;
! => not;
-iname => especifica um padrão a ser buscado, ignorando o case sensitive (por isso o i no iname). Com o not (!), o processo é o inverso; o retorno será todos os arquivos menos o especificado pelo padrão.

* Para colocar mais extensões:
find diretorio -type f ! \( -iname \*.odt -o -iname \*.pdt \) 

--
Talk is cheap. Show me the code - LT
Linux Counter: #596371


4. Re: Encontrar todos os ficheiros menos determinado formato [find]

Ede
ede_linux

(usa Ubuntu)

Enviado em 13/08/2017 - 15:16h

HCK escreveu:

Que tal assim:
find /folder/ -type f | egrep -v '*.odt$' 

Para mais de um tipo ao mesmo tempo:
find /folder/ -type f | egrep -v '(*.odt|*.pdf)$' 


Entendo que o parâmetro -v no egrep seja para inverter a seleção. Mas para que serve o $ no final?

find /folder/ -type f | egrep -v '*.odt$' 






5. Re: Encontrar todos os ficheiros menos determinado formato [find]

Ede
ede_linux

(usa Ubuntu)

Enviado em 13/08/2017 - 15:21h

O - iname ignora o casesensative, traz tudo, certo?
Obrigado


6. Re: Encontrar todos os ficheiros menos determinado formato [find]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 13/08/2017 - 21:33h

ede_linux escreveu:
Entendo que o parâmetro -v no egrep seja para inverter a seleção. Mas para que serve o $ no final?
find /folder/ -type f | egrep -v '*.odt$' 



O $ indica o final da linha. É pra evitar que o grep pegue outras ocorrências onde as "letras" estão no meio do nome. Por exemplo, se você colocar para não exibir ".doc" pode ter algum arquivo com o nome "qualquercoisa.documento.pdf" onde o ".doc" está no meio no nome e não na extensão, enquanto se colocar ".doc$" só será considerado no filtro os nomes que terminam com ".doc", sacou!!!

ede_linux escreveu:
O - iname ignora o casesensative, traz tudo, certo?


man find
-iname pattern
Like -name, but the match is case insensitive. For example, the patterns `fo*'
and `F??' match the file names `Foo', `FOO', `foo', `fOo', etc. The pattern
`*foo*` will also match a file called '.foobar'.



7. Re: Encontrar todos os ficheiros menos determinado formato [find]

Ede
ede_linux

(usa Ubuntu)

Enviado em 14/08/2017 - 05:01h

Esse pormenor do $ vai dar bastante jeito, em outro script :)

O meu inglês não é o melhor. Já tinha lido isso no man mas não entendi, daí a minha questão. Então significa que - name pega todos os nomes e - iname não pega maiúsculas? (Pois ele diz que é insensível a maiúsculas).

Obrigado


8. Re: Encontrar todos os ficheiros menos determinado formato [find]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 14/08/2017 - 10:26h

ede_linux escreveu:

Esse pormenor do $ vai dar bastante jeito, em outro script :)

O meu inglês não é o melhor. Já tinha lido isso no man mas não entendi, daí a minha questão. Então significa que - name pega todos os nomes e - iname não pega maiúsculas? (Pois ele diz que é insensível a maiúsculas).

Obrigado


-iname
É como você tinha dito antes... Vai filtrar as letras independente de serem maiúsculas ou minúsculas.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts