Подтвердить что ты не робот

Как найти файлы, исключая символические ссылки?

Я хочу найти файлы в Linux, которые следуют определенной схеме, но меня не интересуют символические ссылки.

Для этого не существует опции для команды find.

Как мне это сделать?

4b9b3361

Ответ 1

Еще раз проверьте справочную страницу;) Это:

find /path/to/files -type f

type f ищет только обычные файлы - исключая символические ссылки.

Ответ 2

! -type l

Например, если вы хотите искать все обычные файлы в /usr/bin, исключая символическую ссылку:

find /usr/bin/ \! -type l

Ответ 3

Вы хотите, чтобы он следил за символическими ссылками, но не возвращал их (если они соответствуют вашему шаблону)?

find -H?

man find
     ...
     -H      Cause the file information and file type (see stat(2)) returned for each symbolic link specified on the command line to be those of
             the file referenced by the link, not the link itself.  If the referenced file does not exist, the file information and type will be
             for the link itself.  File information of all symbolic links not on the command line is that of the link itself.

     -L      Cause the file information and file type (see stat(2)) returned for each symbolic link to be those of the file referenced by the
             link, not the link itself.  If the referenced file does not exist, the file information and type will be for the link itself.

             This option is equivalent to the deprecated -follow primary.

Ответ 4

Я прочитал MAN, и теперь кажется, что -P Кроме того, использование -type r вызовет ошибку. также обратите внимание на поведение DEFAULT.

-P Никогда не следуйте символическим ссылкам. Это поведение по умолчанию. Когда поиск проверяет или печатает               информацию о файле, а файл является символической ссылкой, используемая информация должна быть взята из               свойства самой символической ссылки.

Ответ 5

Это работает для меня:

найдите -H. -maxdepth 1-type f

На самом деле, действительно не нужен -H