Коротка відповідь
- Windows не дозволяє використовувати наступні символи:
<>:"/\|?*
( джерело )
- Більше не відштовхують символів: пробіл
і крапка .
( джерело )
- Інструменти командного рядка важче використовувати, коли у вас є пробіли в іменах (важче, не неможливо)
- Точки використовуються в RegEx (наприклад, коли ви хочете використовувати
grep
). Провідна точка робить файл, прихований умовно в Linux. У Windows в розширенні файлу використовуються крапки, які використовуються для виявлення типу файлів.
- Windows , також не дозволить імена файлів
CON
, PRN
, AUX
, CLOCK$
, NUL
COM1
, COM2
, COM3
, COM4
, COM5
, COM6
, COM7
, COM8
, COM9
LPT1
, LPT2
, LPT3
, LPT4
, LPT5
, LPT6
, LPT7
, LPT8
, і LPT9
. ( джерело )
- Єдині символи, які не дозволені у файлових системах Unix, які я знаю, є
/
та null (нульовий байт, \0
).
- Дивіться також: Обмеження файлової системи (я не знаю, до якої ОС Windows ви хочете сумісність).
Довга відповідь
Технічна інформація: Файлова система
Ubuntu використовує ext4
файлову систему. Файлова система відстежує, де файли зберігаються на базовому сховищі (диск або SSD або будь-який інший), дозволи у формі власника / групи / іншого можуть читати / записувати / виконувати, часові позначки, ім'я.
Файлова система структурує доступне сховище. Перший блок називається "суперблок". Цей блок використовується для монтажу файлової системи. Наскільки мені відомо, кожна сучасна файлова система ділить простір на блоки. Я думаю (і я не надто впевнений у цьому), що більшість файлових систем також має фіксований розмір блоку, хоча розмір блоку можна налаштувати під час створення файлової системи. ext4 (а також ext2 та ext3) використовують так звані "inode" для файлів і каталогів. Ці вклади містять вказівники на інші блоки (які також можуть бути введеннями або бути "блоками даних"). І "перший" inode файлу містить всю інформацію, яку я згадав вище.
Ще одна інформація - це "тип" файлу. "Тип" може бути:
- звичайний файл
- каталог
- файл пристрою (блок або символьний пристрій)
- ...
Насправді ви також можете відкривати каталоги з редактором:
vim /home
Оскільки каталог не містить повного шляху, а лише назви вмісту, я не бачу причини, через яку файли не можуть містити /
. Я думаю, це може бути зручністю. (Хто-небудь знає, чому /
це не дозволено?)
Однак для інших файлових систем все інакше. FAT16 і FAT32 використовували так звану "таблицю розподілу файлів". Це означає, що існує таблиця, яка містить усі файли, які зберігаються у вашому файлі, на якому "кластері" вони починаються та на якому кластері вони закінчуються як окремо пов'язаний список.
Важливе, що я хотів сказати вам, це те, що заборонені символи також можуть залежати від файлової системи.
Технічна інформація: Типи файлів
- Windows використовує розширення файлів для виявлення типів файлів
- Linux використовує "Чарівні байти" для виявлення типів файлів. Чарівні байти є частиною вмісту файлу і, отже, повністю не залежать від імені. Ці байти є частиною специфікації типу файлу (див. Специфікацію png як приклад). Він також використовує розширення імені файлів для файлів з тими ж магічними байтами, як
.txt
або .html
(обидва - текстові файли).
Пов'язані