Это на удивление трудно найти, потому что все результаты исключают каталоги в поиске.

Я просто хочу исключить каталоги из вывода. Например:

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

Я хочу этот вывод:

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

Как я могу сделать это?

2 ответа2

0

Вам следует взглянуть на параметр -type команды find в руководстве:

   -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)
0

Другой ответ указывает на операнд -type но не совсем очевидно, как вы исключаете из него каталоги. Вам нужно ! , это вот так:

  • -type d соответствует только каталогам.
  • ! -type d соответствует всем, кроме каталогов.

Итак, ваша команда должна быть:

find . ! -type d -size +0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .