Для машины, такой как ваш MacBook, вы не найдете много различий в производительности между двумя командами. Однако, если вы посмотрите на версию -execeec, вы можете увидеть тонкое значение:
sudo find / -iname ".file-to-delete" -exec rm {} \;
Это означает, что вы найдете все эти файлы с именем «.file-to-delete». Однако этот поиск может вернуть некоторые нежелательные ложные позитивы. При чем-то делаю с sudo, вы должны быть немного более осторожны. Преимущество использования -EXEC RM {} заключается в том, что вы можете пройти аргументы в RM, как это:
sudo find / -iname "*~" -exec rm -i {} \;
В этом примере я хочу удалить эти файлы резервных копий, которые делает Emacs. Однако, что тильда может быть в некотором неясном файле, о котором я не знаю и может быть важен. Кроме того, я хочу подтвердить удаление. Поэтому я поставил опцию '-i' на команду RM. Это даст мне интерактивное удаление.
Также вы можете уточнить использование RM для удаления каталогов, а также файлы:
find /usr/local/share/ -iname "useless" -exec rm -r {} \;
вкратце, -exec обеспечивает немного больше контроля над фактической командой, которая удаляет найденный элемент. Преимущество заключается в том, что вы используете один инструмент для поиска файлов, другой инструмент для их удаления. Также не каждая версия утилиты находки имеет опцию -delete. Настолько лучше использовать каждый инструмент для его правильной работы. Это философия Unix - один инструмент, одна работа, используйте их вместе, чтобы делать то, что вам нужно сделать.
Я разобрался. Мне пришлось удалить библиотеку libgnutls28
, которая ранее была установлена с использованием apt
. После этого я снова запустил команду сборки jhbuild и получил другие ошибки, больше не связанные с GnuTLS, так что я думаю, они не вписываются в этот вопрос.