Como excluir diretórios em find OUTPUT

0

É surpreendentemente difícil pesquisar porque todos os resultados são para exclusão de diretórios na pesquisa.

Eu só quero excluir diretórios da saída. Por exemplo:

>find ./ -size +0
./directory
./directory/afileinthere.txt

Eu quero essa saída:

>find ./ -size +0
./directory/afileinthere.txt

Como posso fazer isso acontecer?

    
por Dan M 27.02.2016 / 17:50

2 respostas

0

Você deve dar uma olhada na opção -type de find no manual:

   -type c
          File is of type c:

          b      block (buffered) special

          c      character (unbuffered) special

          d      directory

          p      named pipe (FIFO)

          f      regular file

          l      symbolic link; this is never true if the -L option or the -fol‐
                 low  option  is  in effect, unless the symbolic link is broken.
                 If you want to search for symbolic links when -L is in  effect,
                 use -xtype.

          s      socket

          D      door (Solaris)
    
por 27.02.2016 / 17:55
0

A outra resposta aponta para o operando -type , mas não é realmente óbvio como você exclui diretórios com ele. Você precisa de ! , é assim:

  • -type d corresponde apenas aos diretórios.
  • ! -type d corresponde a tudo, menos aos diretórios.

Então seu comando deve ser:

find . ! -type d -size +0
    
por 16.10.2018 / 14:47

Tags