Почему некоторые файлы и папки скрыты?

12

Я могу понять причину сокрытия файлов и папок в /home/userкаталоге, чтобы пользователи не возились с вещами. Однако я не понимаю, как такое же обоснование можно применить к файлам в каталогах /etc, /bootand, /varкоторые являются доменом администраторов.

У меня вопрос, почему некоторые файлы и папки скрыты от администраторов? Пример:

/boot/.vmlinuz-3.11.1-200.fc20.x86_64.hmac
/etc/.pwd.lock
/etc/selinux/targeted/.policy.sha512
/etc/.java
/etc/.java/.systemPrefs
/etc/skel/.bash_profile
/root/.ssh
/root/.config
/var/cache/yum/x86_64/20/.gpgkeyschecked.yum
/var/spool/at/.SEQ
/var/lib/pear/.filemap
Вопрос переполнен
источник
1
смотри второй ответ. Причиной для тех файлов, которые вы перечислили, являются либо файлы конфигурации, которые не следует менять ежедневно, и они всегда присутствуют как .ssh и .bash_profile, так что вы не хотите знать, что они там есть. Это просто соглашение. Файлы в спуле являются временными файлами, такими же, как и многие другие, перечисленные вами, поэтому их не нужно редактировать вручную, поэтому они скрыты
vfbsilva
3
.ssh и .config всегда называются так, находятся ли они в домашнем каталоге обычного пользователя или в домашнем каталоге корневого пользователя. Предполагается, что / etc / skel является прототипом для домашних каталогов новых пользователей, и файлы там имеют те же имена, что и во вновь созданных каталогах.
Марк Плотник
2
Но эти файлы не скрыты . Команда lsпросто не выводит список файлов, начинающихся с точки по умолчанию (см. info ls) - это дизайн этого конкретного программного обеспечения.
1
@lightÉ: Как бы вы определили «скрытый», если не «не показанный по умолчанию»? Обратите внимание, что это не просто свойство ls; также расширение оболочки globs не будет включать эти файлы, если только начальная точка явно не включена в шаблон, и обычно файловые менеджеры не будут отображать их, если вы не выберете опцию «Показать скрытые файлы» (да, эта опция использует этот термин).
celtschk

Ответы:

15

Вы неверно истолковали основную причину «скрытых файлов». Не то

чтобы пользователи не возились с вещами.

Хотя это может иметь последствия для очень новых пользователей, пока они не узнают, что такое «точечный файл» ( точечный файл и точечный каталог , возможно, являются более подходящими и конкретными терминами, чем «скрытые»). Само по себе это не мешает вам возиться с вещами - для этого и нужны разрешения. Возможно, это помогает указать новым пользователям, что с этим не стоит возиться, пока они не поймут, для чего они нужны.

Таким образом, вы можете рассматривать префикс точки как своего рода суффикс файла - обратите внимание, что они обычно не имеют ни одного из них, хотя могут. Это указывает на то, что этот файл не представляет интереса для общего просмотра, поэтому lsбраузеры файлов обычно его не отображают. Однако, поскольку это префикс, а не суффикс, есть дополнительный бонус, когда вы отображаете их ( ls -a) в лексикографическом порядке, чтобы увидеть их все вместе.

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

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

лютик золотистый
источник
Спасибо за Ваш ответ. Означает ли это, что эти файлы имеют меньшее значение и, следовательно, скрыты, чтобы уменьшить беспорядок?
переполнение вопроса
1
Я думаю, это зависит от вашей точки зрения. Это что-то говорит о значении файла (вероятно). Они используются в домашних каталогах для пользовательских конфигураций, но они также используются в каталогах, как правило, для указания конфигурации каждого каталога . Два примера: системы контроля версий, такие как git, будут использовать их; при gitсканировании заданного каталога, если .gitignoreфайл присутствует, он будет читать его; и при запуске gdb, он будет читать $PWD/.gdbinitфайл , если присутствует ( и~/.gdbinit , другой распространенный метод).
Златовласка
4

/etc/skelсодержит файлы, которые нужно скопировать в домашние каталоги нового пользователя, поэтому имена, конечно же, такие же, как в домашнем каталоге пользователя. Это объясняет /etc/skel/.bash_profile. Каталог /rootтакже является домашним каталогом, а именно домашним каталогом пользователя root. Это объясняет /root/.sshи /root/.config.

/etc/.pwd.lockкажется, файл блокировки. Обычно вы не заинтересованы в блокировке файлов, поэтому имеет смысл скрывать ее.

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

И, конечно, златовласка права, что точечные файлы скрыты не для того, чтобы кто-то мог с ними связываться (основная идея Unix - предполагать, что пользователь знает, что он делает), а для того, чтобы они не загромождали списки каталогов ( хотя для файлов конфигурации в домашнем каталоге я бы посчитал etcподкаталог лучшим решением).

celtschk
источник
+1 "файлы конфигурации в домашнем каталоге" была довольно глупой идеей. Они скрыты, чтобы появляться, когда вы действительно не хотите их видеть.
Maaartinus
3

Это может быть очень opiniated ответ, но я думаю , что главная причина точечными файлы и точка каталоги помечаются как это не скрывать или скрывать их - я думаю , что это просто , чтобы пользователь знал , что в эти файлы и каталоги програмы и использованию настройки, которые могут быть изменены ими или самими программами.

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

Например,> внутри $HOME/.vimrcвы найдете настройки конфигурации для vim.

Jimm-сл
источник