Иногда целесообразно, чтобы имя папки содержало точку (.). Например, вы храните данные для эксперимента, проведенного при L = 0,5. Таким образом, папка может иметь имя:
experiment_L0.5
Подобная проблема может возникнуть для имен файлов. Например:
file_L0.5.txt
Работа в Ubuntu, это плохая практика? Как насчет того, чтобы поделиться этими каталогами с пользователем Windows?
Спасибо!
Насколько я знаю, нет проблем с именами папок и файлов с одной или несколькими точками.
Ubuntu обычно не использует точку и три символа (например, .txt) для определения типа файла. Так что это не имеет особого значения в контексте Ubuntu. Это полезно при обмене файлами с Windows. Ubuntu использует Magic Numbers в первых нескольких байтах файла, чтобы идентифицировать тип файла. Тем не менее, Наутилус. игнорирует магические числа, если для определения типа файла доступно расширение из трех точек и символов. Этот параметр можно изменить. См. Принудительное игнорирование расширений nautilus
. В Ubuntu запуск имени файла или папки с точкой, такой как .experiment_L0.5
, делает файл или папку скрытыми. Вы можете переключить отображение скрытых файлов, нажав Ctrl kbd> + H kbd> в Nautilus. В Windows имя файла начинается с. не спрятан Поэтому, если вы перенесете скрытый файл с именем .experiment_L0.5
в систему Windows, он будет отчетливо виден.
В Ubuntu имя файла может заканчиваться точкой, так как оно не имеет особого значения в конце. Однако в Windows точка разделяет имя и расширение файла, а имя файла, оканчивающееся точкой, но расширение не допускается. Когда я попытался создать такой файл в 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
. ( source ) /
и null (нулевой байт, \0
). Ubuntu использует файловую систему ext4
. Файловая система отслеживает, где файлы хранятся в базовом хранилище (диск или SSD или что-то еще), права доступа в виде владельца / группы / другого могут считывать / записывать / выполнять, отметки времени, имя.
Файловая система структурирует доступное хранилище. Первый блок называется «суперблок». Этот блок используется для монтирования файловой системы. Насколько я знаю, каждая современная файловая система делит свое пространство на блоки. Я думаю (и я не слишком уверен в этом), что большинство файловых систем также имеют фиксированный размер блока, хотя размер блока можно настроить при создании файловой системы. ext4 (а также ext2 и ext3) используют так называемые "inode" для файлов и каталогов. Эти иноды содержат указатели на другие блоки (которые также могут быть инодами или «блоками данных»). И «первый» индекс файла содержит всю информацию, о которой я упоминал выше.
Еще одна информация - это «тип» файла. «Тип» может быть:
Фактически, вы также можете открывать каталоги с помощью редактора:
vim /home
Поскольку каталог не содержит полный путь, а только имена содержимого, которое я не вижу причина, по которой файлы не могут содержать /
. Я думаю, это может быть удобством. (Кто-нибудь знает, почему /
не разрешено?)
Однако в других файловых системах все по-другому. FAT16 и FAT32 использовали так называемую «таблицу размещения файлов». Это означает, что есть таблица, которая содержит все файлы, хранящиеся в вашем файле, в каком «кластере» они начинаются и в каком кластере они заканчиваются как односвязный список.
Важно отметить, что запрещенные символы также могут зависеть от файловой системы.
.txt
или .html
(оба являются текстовыми файлами). Это не имеет значения, ни в Linux, ни в Windows.
Распространенной практикой является наличие папки с именем «program.d» - для сохранения конфигурации и содержимого программы (см. Каталог / etc)
Имена файлов очень гибки в файловых системах Unix, Linux. Единственное имя файла, которое вы не можете иметь, это нулевой символ или тот, который содержит /
в своем имени. Но было бы неплохо избегать использования символов, которые запрещены / зарезервированы в других системах с точки зрения переносимости имен; например, вы не должны использовать ни одного из " * : < > ? \ / |
символов (ограниченных NTFS) в вашем имени файла, если вы хотите получить доступ к файлу в системе Windows.
И об использовании .
(точки) в имени файла , я думаю, что все должно быть в порядке, поскольку он не выглядит как «зарезервированный» символ в любая из систем (кроме OpenVMS, MS-DOS и Windows, где разрешено ее использование в имени файла / каталога, но последнее вхождение будет интерпретироваться как разделитель расширений в VMS, MS-DOS и Windows), как упомянуто в Википедии следующая ссылка:
В других системах, обычно рассматриваемых как часть имени файла, и более одного период может быть разрешен. В Unix начальный период означает, что файл или папка обычно скрыты.