Знайдіть як звичайні файли, так і каталоги


9

Як я можу (якщо я можу сказати!) Знайти файли як каталогу, так і типу файлу?

find -type fd

Це як евристичний темний вік тут.

Відповіді:


12

Ось команда, яку ви можете використовувати:

find -type f -or -type d

7
Або find -type f -o -type dдля сумісної з POSIX альтернативи.
манастирська робота

Гей, у мене виникли невеликі проблеми з цим, коли я запускаю $ find. -type d -or -type f -і -інаме "бачення", воно не робить саме те, що я очікую, чи я пропускаю щось інше!
Джеймс

2
-a має перевагу над -o, використовуйте дужки (але уникайте їх для оболонки). Не потрібно використовувати нестандартні або -і.
Стефан Шазелас

якщо я спробую `знайти. -type d або -type f -name 'abc' . I get an error.. find: шляхи повинні передувати виразу: `.. Будь-яка ідея чому?
alpha_989

1
@ alpha_989 відсутній -раніше or?
Матеуш Піотровський

2

тл: д-р

використання find . -name "*string*" -type f -o -name "*string*" -type d

пояснення

команда -o orаргументи після файлового тракту повністю, такі, що find . -name "*string*" -type f -o -type dобчислює find . (-name "*string*" -type f) -o (-type d). З цієї причини потрібно вказати

Більшість користувачів захочуть щось подібне

find . -name  "*string*" -type f -o -name "*string*" -type d

який обчислює як

find . (-name  "*string*" -type f) -o (-name "*string*" -type d)

знайти деталі синтаксису

-name "*string*"шукає імена, які містять рядок в stringбудь-якому місці.


1

Якщо ви використовуєте GNU find, тоді вам може підійти таке рішення:

find -type d,f

Докладніше man find:

Для пошуку відразу декількох типів можна надати комбінований список букв типів, розділених комою ,(розширення GNU).


2
Використання GNU findверсії 4.7.0 .. Схоже, це не підтримує ,. У повідомленні про помилку сказаноfind: Arguments to -type should contain only one letter.
alpha_989
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.