Первоначально я думал, что это совпадение, но теперь я вижу, что есть даже тег для него: все скрытые имена файлов начинаются с точки. Это соглашение? Почему это было выбрано? Можно ли это изменить? Или другими словами (как связанный вопрос @evilsoup предложил, что подразумевает ответ на кучу других): могу ли я скрывать файлы, не переименовывая их (используя .
в качестве первого символа их имени)?
filesystems
filenames
dot-files
JMCF125
источник
источник
Ответы:
Согласно Википедии ,
... поэтому он начинался как ошибка, а затем был воспринят как функция (для записи
.
это ссылка на текущий каталог и..
ссылка на каталог над ним, но я уверен, что вы уже знаете, что ). Поскольку этот метод скрытия файлов на самом деле достаточно хорош в большинстве случаев, я полагаю, что никто не удосужился реализовать скрытие файлов в стиле Windows.Также существует тот факт, что реализация другого поведения привела бы к еще большей фрагментации в мир * nix, что является последним, что нужно каждому.
Есть еще один метод для сокрытия файлов, который не включает их переименование, но он работает только для файловых менеджеров с графическим интерфейсом (и он не универсален среди тех, которые используются в большинстве Linux, но я не думаю, что Finder OSX делает, и более нишевые файловые менеджеры Linux с меньшей вероятностью будут поддерживать это поведение): вы можете создать файл с именем
.hidden
и поместить в него имена файлов, которые вы хотите скрыть, по одному на строку.ls
и оболочки не будут уважать это, но это может быть полезно для вас, все же.источник
Файлы, начинающиеся с точки, по умолчанию игнорируются командой «ls», которая имеет более или менее тот же эффект «скрытых» файлов, но не является тем же (другие команды могут сделать то же самое или нет). Файлы, начинающиеся с точки, не являются «скрытыми», поскольку «скрытый» не является одним из их атрибутов. В отличие от DOS / Windows, «скрытый» не является атрибутом в Unix. В Unix есть много атрибутов («man chattr» расскажет вам обо всех), но скрытый - не один из них.
Причина, по которой "ls" игнорирует dot-файлы, на самом деле довольно забавная / смущающая. Это было не дизайнерское решение, а результат ошибки программного обеспечения на заре Unix . Когда особенный. и .. записи каталога были добавлены в файловую систему, и было решено, что команда ls не должна отображать их, потому что они мешают. Тем не менее, программа была написана на скорую руку, чтобы исключить любой файл, имя которого начинается с. характер, а не точные имена "." или "..". И это создало прецедент, которому следовали с тех пор в Unix. Как ни странно, когда ребята из Unix перешли к созданию Plan 9, они специально не помещали в него дот-файлы .
источник
man chattr
, хотя подумал, что, возможно, мне понадобится какой-нибудь пакет или специальная программа, чтобы сделать возможными другие скрытые файлы.Вы можете скрыть файлы или нет, и от каких условий, зависит от используемой вами файловой системы и ее драйвера. Традиционные файловые системы Unix не имеют атрибута «скрыть» для файлов.
Драйвер файловой системы может скрывать любые файлы, которые он хочет, просто опуская их имена, когда он предоставляет результаты для системных вызовов, которые используются для получения списка каталогов. Как сказал Сержут в своем ответе, файлы, начинающиеся с точки, не являются действительно скрытыми.
(Это также, как руткиты могут скрывать свои файлы: они подключаются к системным вызовам, которые создают списки каталогов, и отфильтровывают файлы, которые они хотят скрыть.)
Например, в кластерных файловых системах Oracle ACFS каталог
<filesystem mountpoint>/.ACFS/
действительно скрыт: его просто не будет в списке, даже сls -a
. Но если вы знаете, что это там, вы можете получить к нему доступ просто отлично.Если вы используете функцию моментальных снимков файловой системы ACFS, вы можете получить доступ к любым существующим снимкам файловой системы этой файловой системы через этот
.ACFS
каталог. Если это не было скрыто, программа резервного копирования могла бы в конечном итоге выполнить резервное копирование как текущего содержимого файловой системы, так и содержимого любых существующих моментальных снимков, что, вероятно, было бы нежелательным; обычно вы хотите создать резервную копию либо текущего состояния, либо состояния одного конкретного снимка.источник