У меня есть команда find, в которой я не уверен, правильно ли я размещаю аргументы.
find / -xdev -size -size -262144000c -o -type d \( -name .snapshot -o -name man -o -name Man -o -fstype mvfs \) -prune -o -type f
Мне нужно найти только файлы размером менее 250 МБ, которые не находятся в каталогах .snapshot, man или в файловых системах MVFS.
Нужно ли мне заключать команду size в скобки? Нужно ли мне использовать -a вместо -o?
Спасибо!
решение1
Копирую свой комментарий к вопросу в ответ...
find / -type d \( -name .snapshot -o -name man -o -name Man -o -fstype mvfs \) -prune -o -xdev -size -262144000c -type f -print
-a
подразумевается между выражениями, если -o
не указано иное.
(У меня недостаточно репутации для создания/редактирования комментариев, мой комментарий перенесен вместе с вопросом изstackoverflow.com. Однако, возможно, @Scott сможет ответить и получить выгоду за свой вклад, я кое-чему научился. Вы должны написать ему то же самое. Спасибо.)
решение2
ответ crwхорошо. Копированиемойкомментарий в дополнительный ответ:
- Я предлагаю оставить
-xdev
в начале (после/
). - Если да
-xdev
, то я думаю, что вам это не нужно-fstype
. - Также вы можете изменить
-name man -o -name Man
на-name "[Mm]an"
.