find … -exec rm {} \;
выполняется rm
команда для каждого файла. Даже при том, что запуск нового процесса довольно быстр, это еще намного медленнее, чем простое действие удаления файла.
find … -exec rm {} +
звонил бы rm
в пакетах, который намного быстрее: Вы оплачиваете стоимость выполнения rm
однажды на пакет и каждый пакет выполняет многих удаление.
Еще быстрее не должен вызывать rm
вообще. find
команда на Linux имеет действие -delete
удалить файл соответствия.
find ./cache -mtime +0.5 -delete
Однако, если Вы производите файлы на таком уровне это find … -exec rm {} \;
не может поддержать на высоком уровне, существует, вероятно, что-то не так с Вашей установкой. Если cache
содержит миллионы файлов, необходимо разделить его на подкаталоги для более быстрого доступа.
Нет реального общего ответа. Если какой-то инструмент настаивает на одном инструменте, это будет делать это.
Если для вас установка переменных среды работает для вас, нет необходимости перезагружаться. Вы можете просто позвонить в такую вашу команду:
CXX=g++ cmake ...
Это будет запускать Cmake с переменной среды CXX, установленной на G ++.
Если вы действительно хотите сделать то, что вы просили, вы можете заменить / usr / bin / c ++
(или любую команду (или любую команду нужна вашим инструментом) с помощью скрипта оболочки, просящий необходимый компилятор, а затем вызов этот компилятор. - Но будь действительно уверены, что вы знаете, что вы делаете, если вы решите пойти так.