Где идиоматическое место для размещения исходного кода для моих проектов?

Я разработчик программного обеспечения, и только в прошлом году я использовал Linux Mint поверх Windows в качестве своей рабочей среды разработки. За последний год я решил, что буду делать все по-своему и адаптироваться, когда узнаю, как правильно делать вещи. Все идет нормально. Относящийся к этому вопросу, я помещал свой исходный код в свои рабочие и личные проекты в папку, которую я создал в своем домашнем каталоге: ~/src

На прошлой неделе я обновился до Mint 19, и Timeshift является передней и центральной функцией в нем. Я создал резервные копии, но заметил, что мой зашифрованный домашний каталог помечен как исключение из моих резервных копий. Я использую удаленные репозитории git для хранения своего исходного кода, но я бы также чувствовал себя намного лучше, если бы в моих резервных копиях Timeshift был и мой код. Я мог бы добавить включающий фильтр в Timeshift, но я думаю, что пришло время посмотреть, где мой источник должен храниться. Небольшое исследование дало очень полезный Стандарт Иерархии Файловой системы ( pdf ) и привлекло мое внимание к /usr/local/src но не вдавалось в подробности.

Я знаю, что этот вопрос кажется немного субъективным, но Linux всегда казался дружественной для разработчиков ОС, и это заставляет меня поверить, что есть идиоматическое место, где мой личный исходный код отделен от исходного кода, который я загружаю / создаю / устанавливаю.

Где Linux собирается разместить мой источник? Или мне просто добавить включающий фильтр в Timeshift для резервного копирования ~/src ?

/usr/local/src является локальным эквивалентом /usr/src , который FHS описывает как

Исходный код может быть размещен в этом подкаталоге только для справочных целей.

Ни /usr/src ни /usr/local/src не предназначены для использования в качестве рабочих каталогов, особенно для конкретного пользователя. Предполагается, что все ваши данные хранятся в вашем домашнем каталоге, и FHS мало что может сказать о том, что вы там делаете.

Я думаю, что подходящим решением в вашем случае является настройка Timeshift, чтобы он поддерживал ваш исходный код.

Во-первых, все нормально помещается в вашу домашнюю папку ~/ = $HOME обычно равную /home/$USER . Если вы устанавливаете сторонние компоненты, они помещаются в /usr/local или /opt (в зависимости от структуры содержимого).

Основное различие между макетом домашнего каталога пользователей Unix и пользователей MS-Windows заключается в следующем:

Традиционно в Windows / DOS все файлы .doc хранятся в одном месте, а все файлы Excel – в другом, а все файлы PDF – в другом месте и т. Д.

Где, как и в Unix, вы поместите все файлы проекта-1 в один каталог, а все файлы проекта-2 – в другой. Вы можете создать подкаталог для размещения автоматически созданных файлов (скомпилированных файлов).