Как я могу удалить или отключить Windows system32 / find.exe?
3168
th3falc0n
Я пытаюсь сделать мою систему Windows максимально совместимой с существующими файлами Makefile. Один большой шаг, который отсутствует, - это замена окна «find» (которое совпадает с grep) на GNU find (список всех файлов в каталоге и подкаталогах). Это возможно? (У меня уже есть msys find установленный и готовый к работе. Простое удаление system32 / find.exe, вероятно, будет работать, но, к сожалению, это не так просто)
Я переименовываю мои утилиты gnu find.exe в ufind.exe и использую ufind
user619818 9 лет назад
0
Проблема в том, что это решение приведет к созданию разных Make-файлов на разных платформах (если я не хочу создавать ссылку ufind на моих компьютерах с Linux)
th3falc0n 9 лет назад
0
Не делай этого. Это _will_ сломать вещи. Вместо этого используйте среду GNU, например [Cygwin] (http://cygwin.com/) или [MinGW] (http://www.mingw.org/).
Daniel B 9 лет назад
10
Хорошо, если я использую оболочку, поставляемую с msys в MinGW (которую я использую), она все еще зависит от переменной Windows PATH, которая определяет system32 и SysWOW64 в качестве путей поиска и, таким образом, переопределяет поиск msys.
th3falc0n 9 лет назад
0
Что-то пошло не так при установке тогда. Каталоги% PATH% - это поиск спереди назад, и используется первое совпадение. Пока MinGW имеет свои каталоги дальше вперед, все в порядке.
Daniel B 9 лет назад
0
Если вы используете `bash.exe` или` sh.exe`, тогда использование `find` вызовет GNU find вместо Win32 find. `sh.exe` и` bash.exe` поставляются с `git` или MinGW.
Rapptz 9 лет назад
1
Это будет сделано только в том случае, если он запущен с соответствующим сценарием, предоставленным с msys в MinGW, потому что по умолчанию двоичные файлы msys не добавляются в глобальную переменную Path MinGW
th3falc0n 9 лет назад
0
2 ответа на вопрос
16
salehigal
Rather than removing Windows' find.exe, I strongly recommend putting GNU in your path before Windows\System32. For example, with Cygwin, you can use something like:
Конечно, нет необходимости делать это вручную - просто так все работает. Из MSYS `/ etc / profile`:` export PATH = ".: / Usr / local / bin: / bin: / mingw / bin: $ PATH" `
Daniel B 9 лет назад
0
Если вы идете по этому пути, лучше ограничить область видимости максимально. Не меняйте `PATH` для всей системы; изменяйте его только для используемого вами приложения (например, используйте специальный пакетный файл для запуска приглашения с `set PATH = \ path \ to \ cygwin;% PATH%`). Это ограничивает потенциальные сюрпризы позже, когда вы или кто-то другой ожидает утилиту Windows и вместо этого получает * nix.
Bob 9 лет назад
1
1
th3falc0n
You can gain access to all protected files by changing the ownership.
For Windows 7, on the file or folder that you want to edit:
Go to Properties->Security->Advanced->Owner
Change owner to either Administrators or your own User
On Properties->Security grant rights to the new owner
Пожалуйста, включите необходимые шаги в вашем ответе. Если ссылка исчезнет в какой-то момент, ваш ответ станет намного менее полезным.
gronostaj 9 лет назад
2
И тогда любое обновление Windows (будь то исправление ошибки, исправление безопасности, пакет обновления или другое) может заменить find.exe на «правильную» версию снова. Это «глобальное» решение «локальной» проблемы, и они всегда являются плохой идеей.
Rob 9 лет назад
0
Вы догадываетесь, почему я пометил ответ Salehigal как правильный ?, Мое - это решение проблемы, о которой я просил, решение Salehigal - это проблема, которая у меня действительно была.
th3falc0n 9 лет назад
2