Люди говорят, что в именовании файлов Unix не должно быть пробелов.
Люди много чего говорят. Есть некоторые инструменты, которые могут напортачить, но, надеюсь, их мало на данный момент, поскольку пробелы - это вирус, распространенный гигантскими корпорациями потребительских несвободных ОС, и теперь их невозможно избежать.
Пробелы делают неудобным указание имен файлов в командной строке и т.д. Вот и все. Единственными категорически запрещенными символами в *nix-системах являются NUL (не волнуйтесь, его нет ни на вашей, ни на чьей-либо другой клавиатуре) и
/
, поскольку это разделитель путей. 1 В остальном - все, что угодно. Отдельные элементы пути (имена файлов) ограничены 255 байтами (возможное осложнение, если вы используете расширенные наборы символов), а полные пути - 4 КиБ.Или это просто вопрос личных предпочтений
Я бы сказал, что это так. Большинство DE создают множество каталогов с заглавными буквами в вашем
$HOME
(Downloads
,Desktop
,Documents
-D
очень популярна), так что в этом нет ничего странного. Есть и очень банальные традиционные файлы с заглавными буквами, такие как.Xclients
и.Xauthority
.Преимущество заглавных букв в начале заключается в том, что при лексикографическом перечислении они будут находиться перед строчными буквами - по крайней мере, во многих инструментах и в зависимости от локали.
Я поклонник camel case (он же camelCase) и использую его в именах файлов, например,
/home/goldilocks/blueSuedeShoes
- неважно, что там внутри. Определенно, это вопрос личных предпочтений, но мне еще не приходилось сталкиваться с этим.Файлы классов Java по своей природе содержат заглавные буквы, потому что имена классов Java имеют такую тенденцию. И, конечно, не будем забывать о
NetworkManager
, даже если некоторые из нас предпочли бы.1. Существует гораздо более разграниченный, рекомендованный POSIX "Portable Filename Character Set", который не включает пробел - но он включает верхний регистр! POSIX также определяет более общее ограничение относительно "символа косой черты и нулевого байта" в другом месте того же документа. Это отражает, или отражено в давно сложившейся общепринятой практике.
Мне подходит.
% cat facts.yml
#!/usr/bin/env ansible-playbook
- name: test
hosts: somehost.example.edu
tasks:
- debug: var=ansible_kernel
- shell: "echo {{ ansible_kernel }} > /tmp/thisisverybaddonotuse"
%./facts.yml
PLAY [test] ***
TASK [Gathering Facts] ***
ok: [somehost.example.edu]
TASK [debug] ***
ok: [somehost.example.edu] => {
"ansible_kernel": "3.10.0-693.21.1.el7.x86_64"
}
TASK [command] ***
changed: [somehost.example.edu]
PLAY RECAP ***
somehost.example.edu : ok=3 changed=1 unreachable=0 failed=0
% ssh somehost.example.edu "cat /tmp/thisisverybaddonotuse"
3.10.0-693.21.1.el7.x86_64
Возможно, вы не собираете факты или иным образом делаете что-то, что неясно из ограниченной информации в вашем сообщении.