Строчные в именах файлов Linux

11

Поскольку я нахожу, что UpperCase действительно удобен для чтения по первым буквенным разделениям в длинных сложных именах, я склоняюсь к тому, чтобы дать некоторые имена из моих файлов Linux с некоторым UpperCase. В основном исполняемые файлы, некоторые каталоги тоже.

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

Итак, я немного погуглил и обнаружил эту статью: « Имена файлов Linux» , в которой говорится, что в мире Unix следует всегда использовать строчные буквы,

... Лучше всегда использовать строчные буквы в Linux, если вы не можете придумать вескую причину использовать прописные или смешанные буквы. Большинство пользователей Unix используют строчные буквы почти исключительно, но кроме этой «культурной» точки зрения, есть еще одна веская причина использовать строчные буквы. Если вы используете или используете доступ к файловой системе DOS в Linux, DOS не сможет видеть файлы с именами в верхнем или смешанном регистре ...

Это действительно так?

Стефан Роллан
источник
2
да, это действительно так. Unix люди не могут найти клавишу Shift. но на самом деле нет ничего оправданного, чтобы поддержать правила против смешанного случая. это просто напыщенная речь
Росс Паттерсон

Ответы:

20

Программисты ненавидят использование клавиши Shift (а заглавные буквы - это то, с чем многие пытаются избавиться ). Продолжаем с того места, где написано "всегда используйте строчные буквы" ...

Лучше всегда использовать строчные буквы в Linux, если вы не можете придумать вескую причину использовать прописные или смешанные буквы. Большинство пользователей Unix используют строчные буквы почти исключительно, но кроме этой «культурной» точки зрения , есть еще одна веская причина использовать строчные буквы. Если вы используете общий доступ или обращаетесь к файловой системе DOS в Linux, DOS не сможет видеть файлы с именами в верхнем или смешанном регистре.

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

Файлы на вашем Linux-компьютере принадлежат вам. Делайте с ними так, как вам нравится, так, чтобы это имело смысл для вас.

Я обнаружил, что соглашение об использовании верхнего регистра в качестве начальной буквы каталога облегчает мне навигацию по ним. Выполнение 'ls' в каталоге автоматически помещает все каталоги в верхнюю часть списка и отделяет каталоги от файлов, что облегчает их просмотр и навигацию. Но опять же, это для меня - делай то, что работает для тебя .


источник
1
DOS? В самом деле? Это больше не актуально.
Максимус Минимус
3
@ mh01 Раньше я считал EBCDIC неактуальным, пока в прошлом году мне не приходилось иметь дело с системой, которая посылала этот набор символов, а не ascii. Я видел системы OpenVMS (самый последний выпуск был только 2 года назад, неплохо для того, что был первый выпуск 35 лет назад) ... и его файловая система по-прежнему нечувствительна к регистру. Очевидно, у Mac есть регистрозависимый и нечувствительный к регистру (и steam и photoshop не любят регистрозависимые файловые системы на маке ). Регистр нечувствителен, жив.
3
Не говоря уже о подавляющем большинстве настольных компьютеров, использующих файловые системы Windows без учета регистра.
Килиан Фот
Хорошее замечание о нечувствительности к регистру по сравнению с сохранением кейса, но если у вас есть разные файлы, которые отличаются только регистром имени файла, я думаю, что есть и другие проблемы, кроме переноса в нечувствительные к регистру файловые системы, которые могут вызвать путаницу. ..
CVn
9

«Ориентированные на потребителя» (что бы это ни значило) применения, как правило, используют Title Case даже в мире Unix. Это чаще всего случается, когда в рассматриваемой организации есть люди, вся работа которых состоит в том, чтобы думать об опыте пользователя.

Например, мой рабочий стол Ubuntu имеет папки в домашнем каталоге, называемые Downloads , Pictures, Documentsи т.д. То же самое для моей OSX ноутбук (да, он считает, что это BSD). Хотя стоит отметить, что Apple заходит так далеко, что называет свои собственные системные каталоги заглавными буквами (например /Library/Audio/Apple Loops/), сохраняя при этом «классическую» базовую файловую систему строчными (например /usr/libexec/dtrace/). Но ни один дистрибутив Linux, о котором я знаю, не использует titlecase где-либо за пределами домашнего каталога пользователя.

Предположительно, различие заключается в том, что каталоги, на которые вы ожидаете, что люди действительно будут смотреть, являются заглавными буквами, а места, где вы ожидаете, что люди не будут изучать, - строчными. Подобное различие, кажется, находится в игре с Ubuntu; только каталоги, которые должны отображаться в виде списка папок в окне Nautilus, являются заглавными буквами, в то время как имена папок, которые должны вводиться (не просматриваться), все ниже.

И это суть этого; titlecase или uppercase труднее набрать. Но titlecase выглядит лучше в списке или наборе плиточных папок. Итак, выбирайте соответственно. Люди из Linux часто имеют дело с командной строкой даже для рутинных задач, поэтому строчные буквы имеют больше смысла.

tylerl
источник
Хорошая мысль, но я бы добавил, что пробелы или подчеркивания легче читать, чем верблюд или Паскаль
jk.
4

Об аргументе DOS: файловые системы DOS / Windows действительно видят ваши файлы независимо от регистра, и они могут справиться с ними хорошо. Очень старые файловые системы DOS не поддерживают ничего, кроме имен файлов 8.3, но даже FAT32 может обрабатывать длинные имена файлов. Единственная проблема заключается в том, что, хотя файловые системы DOS / Windows сохраняют регистр (в большинстве случаев; некоторые варианты отбрасывают регистр для имен файлов, которые соответствуют формату 8.3), они не чувствительны к регистру при сравнении имен файлов; Windows считает «foobar», «Foobar», «FOOBAR» и «fOObAr» одинаковыми именами файлов.

Тем не менее, это в основном культура, но есть некоторые предпосылки для этого. Причиной, почему это конкретное соглашение застряло в мире UNIX, является удобство использования . Здесь есть два основных аргумента:

  • Разделение слов с использованием буквенных символов лучше для удобства чтения, чем использование регистров для обозначения границ слов. Если вы не верите мне, сравните это предложение с предыдущим и расскажите мне, что проще. (И, конечно же, новизна сепарации все хуже).
  • Строчные буквы имеют более разнообразные формы, чем прописные, что, в свою очередь, приводит к более разнообразным формам слов. Это делает текст, написанный в нижнем регистре, проще для чтения, чем текст, написанный в верхнем регистре.

Эти наблюдения легко проверить, и они даже были подтверждены научными исследованиями.

Кроме того, культура UNIX предпочитает соглашения, которые не только легко читаются, но и легко пишутся; Хакеры UNIX - это, как правило, люди, которые проводят много времени за клавиатурой, и многие используют либо официальную систему сенсорного ввода, либо какую-то личную производную, настроенную для программирования. Концепция пребывания в домашнем ряду важна в любом случае, поэтому людям нравится избегать использования клавиш, недоступных из домашнего ряда, особенно клавиш переключения регистра.

Если объединить эти три ограничения, есть только действительно один здравомыслящие конвенции, которая all-lowercase-with-dashes.

tdammers
источник
3
@StephaneRolland: последовательное присвоение имен таким различным вещам, как идентификаторы в разных языках программирования и имена файлов, нецелесообразно. Будьте последовательны в каждой области и придерживайтесь установленных соглашений, но не пытайтесь найти одно соглашение, чтобы управлять ими всеми. Переменные Java не являются именами таблиц SQL, и они также не являются именами файлов.
tdammers
@StephaneRolland - Я считаю , что слово вы хотите snake_case .
cchamberlain