Даже при том, что GCC является GPLv3, получающиеся двоичные файлы, произведенные GCC никогда, не имели ограничения лицензии. В ясном можно использовать GCC для создания программного обеспечения, которое подпадает под лицензию, которую Вы хотите. Даже библиотека C, которая идет с GCC и это включено в двоичный файл, без лицензий. http://www.gnu.org/licenses/gcc-exception-faq.html
Разделите 2 из GNU GPLv3:
У Вас есть разрешение распространить работу Целевого Кода, сформированного путем объединения Библиотеки времени выполнения с Независимыми Модулями, даже если такое распространение иначе нарушило бы условия GPLv3, при условии, что весь Целевой Код был сгенерирован Имеющими право Процессами компиляции. Можно затем передать такую комбинацию в соответствии с условиями по Вашему выбору, согласовывающийся с лицензированием Независимых Модулей.
“Имеющий право” означает, что компиляция не включает и GCC и GPL-несовместимое программное обеспечение. Это не ограничение: BSD-лицензированное программное обеспечение может использоваться в процессе сборки, включающем GNU GCC.
Как Вы видите, вопреки тому, что было сказано выше, нет никакой РЕАЛЬНОЙ связанной с лицензией причины переехать от GCC, поскольку нет никакой несовместимости с использованием GCC в FreeBSD.
Настоящая причина позади этого изменения является политической и оппортунистической:
Эти факты создают возможность для FreeBSD, чтобы переехать от GCC и избавиться от него: они на самом деле по закону не вынуждены, поскольку они могли все еще использовать GCC для создания бесплатного или BSD-лицензированного программного обеспечения, но они хотят придерживаться лицензируемого программного обеспечения "всего BSD" философия.
Вот ответ. Но тот вопрос указывает для избиения как цель проблемы.
Объяснение - это find
находит "$HOME/MySymlinkedPath"
. Это - символьная ссылка, не каталог, таким образом, рекурсивный спуск останавливается там. Если выражение подобрано "$HOME/MySymlinkedPath"
(например, в find "$HOME/MySymlinkedPath" -name 'My*'
), затем find
распечатал бы это как соответствие.
Как указано там, я нашел, что самый легкий/самый чистый способ иметь дело с ним и исправить все сценарии, вместо:
find "$HOME/MySymlinkedPath" -name "run*.sh"
просто добавьте наклонную черту, так, чтобы find
начинает не с символьной ссылки, а с цели символьной ссылки:
find "$HOME/MySymlinkedPath/" -name "run*.sh"
С другой стороны, передайте -H
опция к find
(обратите внимание, что это должно быть на первом месте, перед путями), чтобы сказать это пересекать символьные ссылки передало свою командную строку. (Это отличается от -L
который говорит find
пересекать символьные ссылки, с которыми встречаются во время рекурсивного спуска также.)
find -H "$HOME/MySymlinkedPath" -name "run*.sh"
И наконец это работало лучше всего здесь с -L
(из-за этих нескольких файловых систем у меня есть symlinked через папки). Но это генерирует загрузки не проблематичные сообщения об ошибках, таким образом, я добавил 2>/dev/null
; и также решенный для создания этого псевдонима alias find='find -L'
:
find -L "$HOME/MySymlinkedPath" -name "run*.sh" 2>/dev/null