Иногда целесообразно, чтобы имя папки содержало точку (.). Например, вы храните данные для эксперимента, проведенного при L = 0,5. Таким образом, папка может быть названа:
experiment_L0.5
Аналогичная проблема может возникнуть для имен файлов. Например:
file_L0.5.txt
Работа в Ubuntu, это плохая практика? Как насчет того, чтобы поделиться этими каталогами с пользователем Windows?
Благодарность!
Ответы:
Насколько я знаю, нет проблем с именами папок и файлов с одной или несколькими точками.
Обычно Ubuntu не использует точку и три символа (например, .txt) для определения типа файла. Так что это не имеет особого значения в контексте Ubuntu. Это полезно при обмене файлами с Windows. Ubuntu использует магические числа в первых нескольких байтах файла, чтобы определить тип файла. Тем не менее, Наутилус. игнорирует магические числа, если для определения типа файла доступно расширение из трех точек и символов. Этот параметр можно изменить. См. Force nautilus, чтобы игнорировать расширения
В Ubuntu запуск имени файла или папки с точкой, например
.experiment_L0.5
, делает файл или папку скрытыми. Вы можете переключить отображение скрытых файлов, нажав Ctrl+ Hв Nautilus. В Windows имя файла начинается с. не спрятан Поэтому, если вы перенесете скрытый файл с именем.experiment_L0.5
в систему Windows, он будет отчетливо виден.В Ubuntu имя файла может заканчиваться точкой, так как оно не имеет особого значения в конце. Однако в Windows точка разделяет имя и расширение файла, а имя файла, оканчивающееся точкой, но расширение не допускается. Когда я попытался создать такой файл в Windows, я получил файл только с именем, без точки, без расширения.
Ссылка: вики на имена файлов
Надеюсь это поможет.
источник
:
, недопустимого в именах файлов Windows, что создаст проблемы ( и это так ). Смотрите также здесь .fname.
) не разрешена в Windows.test.
в Windows. Я обновлю свой ответ.Краткий ответ
<>:"/\|?*
( источник )и точка
.
( источник )grep
). Первая точка делает файл скрытым в Linux. В Windows точки используются в расширении файла, которое используется для определения типа файла.CON
,PRN
,AUX
,CLOCK$
,NUL
COM1
,COM2
,COM3
,COM4
,COM5
,COM6
,COM7
,COM8
,COM9
LPT1
,LPT2
,LPT3
,LPT4
,LPT5
,LPT6
,LPT7
,LPT8
, иLPT9
. ( источник )/
null (нулевой байт,\0
).Длинный ответ
Техническая информация: файловая система
Ubuntu использует
ext4
файловую систему. Файловая система отслеживает, где файлы хранятся в базовом хранилище (диск или SSD или что-то еще), права доступа в форме владельца / группы / других могут считывать / записывать / выполнять, отметки времени, имя.Файловая система структурирует доступное хранилище. Первый блок называется «суперблок». Этот блок используется для монтирования файловой системы. Насколько я знаю, каждая современная файловая система делит свое пространство на блоки. Я думаю (и я не слишком уверен в этом), что большинство файловых систем также имеют фиксированный размер блока, хотя размер блока можно настроить при создании файловой системы. ext4 (а также ext2 и ext3) используют так называемые "inode" для файлов и каталогов. Эти иноды содержат указатели на другие блоки (которые также могут быть инодами или «блоками данных»). И «первый» индекс файла содержит всю информацию, о которой я упоминал выше.
Еще одна информация - это «тип» файла. «Тип» может быть:
Фактически, вы также можете открывать каталоги с помощью редактора:
Поскольку каталог не содержит полный путь, а только имена содержимого, я не вижу причины, по которой файлы не могут содержать
/
. Я думаю, это может быть удобством. (Кто-нибудь знает, почему/
это не разрешено?)Однако для других файловых систем все иначе. FAT16 и FAT32 использовали так называемую «таблицу размещения файлов». Это означает, что есть таблица, которая содержит все файлы, хранящиеся в вашем файле, в каком «кластере» они начинаются и в каком кластере они заканчиваются как односвязный список.
Важно отметить, что запрещенные символы также могут зависеть от файловой системы.
Техническая информация: типы файлов
.txt
или.html
(оба являются текстовыми файлами).Связанный
источник
.txt
и.html
файлы действительно имеют разные "магические значения" - попробуйте переименовать файл htmltest.txt
и запуститьfile test.txt
. Это не имеет большого отношения к первоначальному вопросу, но все же :)file
:file
не только использует магические значения для определения типа файла. Каждый действительный HTML-файл представляет собой текстовый файл (в том смысле, что он содержит читаемые символы), но не каждый действительный текстовый файл является действительным HTML-файлом (в том смысле, что он проверяется на соответствие валидаторам W3C). Так что довольно много типов файлов (html, xml, csv, js, php, c, h, cpp, ...) на самом деле являются текстовыми файлами. Только бинарные файлы имеют магические байты, которые находятся на четко определенных позициях. Все файлы, которые я назвал выше, могут иметь произвольный пробел перед содержимым.Для полноты, имена, которые состоят только из одной точки
.
или двух точек,..
являются специальными:.
ссылается на текущий каталог..
ссылается на родительский каталогЭти записи добавляются автоматически и всегда существуют, поэтому вы не можете иметь файл с именем
.
или..
.источник
Это не имеет значения, ни в Linux, ни в Windows.
Распространенной практикой является наличие папки с именем «program.d» - чтобы сохранить конфигурацию и прочее для программы (смотрите в каталоге / etc)
источник
Имена файлов очень гибки в файловых системах Unix, Linux. Единственное имя файла, которое вы не можете иметь, это нулевой символ или тот, который содержит
/
в своем имени. Но было бы неплохо избегать использования символов, которые запрещены / зарезервированы в других системах с точки зрения переносимости имен; например, вам не следует использовать какие-либо" * : < > ? \ / |
символы (ограниченные NTFS) в имени файла, если вы хотите получить доступ к файлу в системе Windows.И что касается использования
.
(точки) в имени файла , я думаю, что это должно быть хорошо, так как он не кажется «зарезервированным» символом ни в одной из систем (за исключением OpenVMS, MS-DOS и Windows, где его использование в имя файла / каталога разрешено, но последнее вхождение будет интерпретироваться как разделитель расширений в VMS, MS-DOS и Windows), как упомянуто в следующей ссылке на Википедию:В других системах обычно рассматривается как часть имени файла, и может быть разрешено более одного периода. В Unix начальный период означает, что файл или папка обычно скрыты.
источник