Соглашения об именах файлов и каталогов


21

Я хочу реорганизовать файлы и каталоги в моей системе. Однако я не уверен, что является лучшей практикой .

После прочтения этого вопроса и его ответов я предполагаю, что самая важная часть должна быть последовательной. Однако это то, где я застрял. Например, в корневом каталоге есть такие каталоги, как /binи /usr, которые используют строчные буквы. Но в каталоге моего пользователя /home/foobar/уже есть несколько каталогов, таких как ~/Pictures, ~/Documentsи ~/Music(которые пишутся с большой буквы)!

Может быть, это только потому, что я использую Ubuntu, но что считается лучшей практикой ?


7
Вы делаете в своей системе то, что вы хотите. Если вы хотите хранить порно коллекции в / загрузке никто , ограничивает.
Антон Барковский

2
К вашему сведению, когда вы начинаете путь с /, как у вас /Pictures, это означает, что путь начинается с корневого уровня (т. Е. Абсолютного пути). Если путь начинается с ~, то его отправной точкой является домашний каталог (ваш домашний каталог, если за ним вообще следует /или ничего, а кто-то другой, если за ним следует имя пользователя). Так что вместо этого вы должны писать, ~/Picturesчтобы обозначить каталог Pictures в вашем домашнем каталоге, или вы просто должны написать Pictures. Если вы хотите показать, что это каталог, следуйте за ним /, как в Pictures/.
Майк ДеСимоне

Ответы:


7

Здесь есть пара противоречивых частей. Комментарий о том, что вы можете делать все, что вы хотите, верен, но в долгосрочной перспективе он также сделает для вас гораздо больше работы.

Если у вас есть идеи о перестановке чего-либо вне вашей домашней директории, остановитесь ! Это намного сложнее, чем вы думаете, и вы должны оставить это в покое. Если вам это не нравится, вы должны перейти на другой дистрибутив или даже операционную систему. Если ни один из них не подходит вам, вам нужно будет свернуть свой собственный, но вы не можете просто перемещать системные каталоги без сожжения. Посмотрите этот вопрос, чтобы понять, что произойдет, если вы захотите пойти по этому пути.

Итак, мы до вашего домашнего каталога.

Прежде всего, помните, когда вы придумываете структуру, в которой права доступа являются иерархическими. Чтобы кто-то имел права доступа к данной папке, он должен иметь как минимум права на выполнение каждой папки НАД этой папкой. Если у вас есть что-то в вашем домашнем каталоге, которым вы делитесь, оно должно быть в верхней части (например, ~ / Music), все, что вы хотите ограничить, должно быть в подпапках с ограниченными разрешениями (например, ~ / .ssh / id_rsa).

Во-вторых, нет никаких правил или даже лучших практик как таковых, но есть соглашения. Многие программы используют значения по умолчанию, которые вы можете или не можете изменять, но даже когда вы можете их менять, постоянно приходится делать это. Gnome, и особенно Ubuntu, любит папки с красивыми именами, начинающимися с заглавных букв. Если вы попытаетесь переместить «Загрузки» в «Загрузки», то обнаружите, что оригинал, вероятно, снова будет создан заново какой-то программой с предполагаемым значением по умолчанию. Вы должны решить, сколько плавания против течения вы хотите сделать в этих случаях.


И я подумал, что Linux можно настраивать так, как вы хотите ...
daGrevis

Вам все еще нужны разрешения на выполнение для каждой папки над каталогом, если вы обращаетесь к этому каталогу по программной ссылке? Кроме того, почему бы не создать мягкую ссылку от «Загрузки» до «Загрузки» в качестве ответа на ваш последний пункт о поведении некоторых дистрибутивов.
deed02392

15

Организация системных файлов зависит от производителя операционной системы. В общем случае дистрибутивы Linux соответствуют стандарту иерархии файловых систем Linux (FHS) . Как пользователь или системный администратор, FHS (и дополнительные соглашения вашего дистрибутива) могут иногда быть полезны, если вам нужно найти файл или если вы хотите понять роль файла с учетом его местоположения, но это не ограничивает вас, вы можете все равно делай что хочешь (на свой страх и риск).

Внутри вашего домашнего каталога вы можете делать почти все, что хотите, за одним исключением: точечные файлы, то есть файлы, имена которых начинаются с буквы .в вашем домашнем каталоге, являются файлами конфигурации или состояния, и приложения требуют, чтобы они имели определенное имя. Например, bash всегда будет читать ~/.bashrcпри запуске (кроме случаев, когда это не так, но это уже другая история), поэтому лучше не использовать это имя для других целей.

Проект Freedesktop , который является главным общим основанием для Gnome и KDE , определил несколько стандартных каталогов в$HOME : Documents, Musicи т.д. Некоторые приложения будут создавать эти каталоги , если они не существуют, а также использовать их в качестве расположения по умолчанию. Вы можете изменить их имена, и фактически они должны быть переведены на ваш язык. Программный компонент, который управляет этими каталогами xdg-users-dirs. Вы можете изменить имена каталогов, установив различные значения в ~/.config/user-dirs.dirs.


1

В GNU / Linux соответствующим стандартом является Стандарт иерархии файловых систем (FHS). Однако это не распространяется на соглашения об именах каталогов в домашнем каталоге пользователей.


Каламбур: Если вы делаете PREFIX=$HOME ./configure; make; make installчто - то построить без корня привилегий вы получите bin, lib, include, share, и manт.д. под $HOME, так что если есть какой -то шанс , что вы будете каждый хотите делать , что вы можете также использовать традиционные названия в первую очередь.
dmckee
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.