Какой символ не может содержаться в имени файла

Если вы загружаете на сайт файлы (документы, изображения, архивы и пр.), и подразумевается, что доступ к этим файлам будет публичный, а не ограниченный списком избранных товарищей, нужно иметь в виду, что различные многочисленные пользователи сети интернет используют разные устройства ( настольные компьютеры, ноутбуки, планшеты, смартфоны, …) и разные операционные системы (Mac, PC, Linux, …).
И чтобы у всех ваши файлы адекватно открывались, отображались и скачивались, нужно перестраховаться и избегать использования в названиях файлов и каталогах сайта запрещенных символов.
Использование правильных названий для папок и файлов очень важно для web, особенно – для загружаемых файлов, таких как PDF-файлы, документы MS Word, электронные таблицы MS Excel и др.
Создавая и формируя любой документ, мы не имеем ограничений по используемым символам внутри него и можем писать в нем любые, даже запрещенные символы. Но для сохранения файла нужно присваивать ему имя с учетом некоторых правил и ограничений интернета.
Не используйте следующие запрещенные символы в названиях директорий и файлов:
# – pound (решетка) | < – left angle bracket (знак “меньше”) | $ – dollar sign (доллар) | + – plus sign (плюс) |
% – percent (процент) | > – right angle bracket (знак “больше”) | ! – exclamation point (восклицательный знак) | ` – backtick (обратная кавычка) |
& – ampersand (амперсенд) | * – asterisk (звездочка) | ‘ – single quotes (одинарные кавычки) | | – pipe (вертикальная черта) |
{ – left bracket (левая фигурная скобка) | ? – question mark (вопросительный знак) | “ – double quotes (двойные кавычки) | = – equal sign (равно) |
} – right bracket (правая фигурная скобка) | / – forward slash (прямой слеш) | : – colon (двоеточие) | |
– back slash (обратный слеш) | – blank spaces (пробел) | @ – at sign (собачка) |
Не каждый сайт или сервер имеет механизм проверки файлов и, зачастую, даже если имя файла содержит запрещенные символы, вы все равно сможете загрузить его на сервер. Но вот скачать его, скорее всего, никто не сможет, особенно, через web-интерфейс.
Рассмотрим ситуацию, в которой пользователь загрузил на сайт PDF-файл, содержащий в названии символ “Решетка” (pound) – #. Сервер имеет операционную систему Linux. Поведение сервера при наличии таких символов в именах файлов будет неадекватным.
В этом случае апач считает что URL – это все, что находится перед знаком “Решетка”, а все что после него – это якорь на HTML-странице, т.е. ссылка на конкретное место в HTML-документе. Соответственно, он не распознает его, как файл и не отдает пользователю.
Так как на большинстве сайтов используется автоматический Загрузчик файлов, который без лишних вопросов загружает то, что пользователь выбирает на своем компьютере. Поведение апача верное, но он не может отличить файл от html, для него всё является ссылкой, поэтому он так и будет обрабатывать.
Таким образом, нужно всего лишь не использовать символы запрещенные для имен и папок на сайте. Это самое простое в реализации.
Дополнительно, запомните следующие правила и постарайтесь им следовать:
- Название файлов не должно начинаться и заканчиваться знаком “Пробел” (space), “Точка” (period), “Дефис” (hyphen) или “Подчеркивание” (underline);
- Не присваивать файлам слишком длинные названия, постараться не превышать 31 символ;
- По возможности всегда использовать только маленькие буквы, некоторые операционные системы чувствительны к регистру;
- Избегайте использование знака “Пробел” и “Подчеркивание”, если название файла состоит из нескольких слов. В этом случае лучше используйте знак “Дефис”.
- Не используйте отличные от латиницы буквы для названий файлов и папок (русские, китайские, немецкие с умляут и др.). Не смотря на широкие возможности современных кодировок типа UTF-8, у некоторых пользователей могут возникнуть трудности с файлами, имеющими такие экзотические символы в названии.
Источник
Если вы загружаете на сайт файлы (документы, изображения, архивы и пр.), и подразумевается, что доступ к этим файлам будет публичный, а не ограниченный списком избранных товарищей, нужно иметь в виду, что различные многочисленные пользователи сети интернет используют разные устройства ( настольные компьютеры, ноутбуки, планшеты, смартфоны, …) и разные операционные системы (Mac, PC, Linux, …).
И чтобы у всех ваши файлы адекватно открывались, отображались и скачивались, нужно перестраховаться и избегать использования в названиях файлов и каталогах сайта запрещенных символов.
Использование правильных названий для папок и файлов очень важно для web, особенно – для загружаемых файлов, таких как PDF-файлы, документы MS Word, электронные таблицы MS Excel и др.
Создавая и формируя любой документ, мы не имеем ограничений по используемым символам внутри него и можем писать в нем любые, даже запрещенные символы. Но для сохранения файла нужно присваивать ему имя с учетом некоторых правил и ограничений интернета.
Не используйте следующие запрещенные символы в названиях директорий и файлов:
# – pound (решетка) | < – left angle bracket (знак “меньше”) | $ – dollar sign (доллар) | + – plus sign (плюс) |
% – percent (процент) | > – right angle bracket (знак “больше”) | ! – exclamation point (восклицательный знак) | ` – backtick (обратная кавычка) |
& – ampersand (амперсенд) | * – asterisk (звездочка) | ‘ – single quotes (одинарные кавычки) | | – pipe (вертикальная черта) |
{ – left bracket (левая фигурная скобка) | ? – question mark (вопросительный знак) | “ – double quotes (двойные кавычки) | = – equal sign (равно) |
} – right bracket (правая фигурная скобка) | / – forward slash (прямой слеш) | : – colon (двоеточие) | |
– back slash (обратный слеш) | – blank spaces (пробел) | @ – at sign (собачка) |
Не каждый сайт или сервер имеет механизм проверки файлов и, зачастую, даже если имя файла содержит запрещенные символы, вы все равно сможете загрузить его на сервер. Но вот скачать его, скорее всего, никто не сможет, особенно, через web-интерфейс.
Рассмотрим ситуацию, в которой пользователь загрузил на сайт PDF-файл, содержащий в названии символ “Решетка” (pound) – #. Сервер имеет операционную систему Linux. Поведение сервера при наличии таких символов в именах файлов будет неадекватным.
В этом случае апач считает что URL – это все, что находится перед знаком “Решетка”, а все что после него – это якорь на HTML-странице, т.е. ссылка на конкретное место в HTML-документе. Соответственно, он не распознает его, как файл и не отдает пользователю.
Так как на большинстве сайтов используется автоматический Загрузчик файлов, который без лишних вопросов загружает то, что пользователь выбирает на своем компьютере. Поведение апача верное, но он не может отличить файл от html, для него всё является ссылкой, поэтому он так и будет обрабатывать.
Таким образом, нужно всего лишь не использовать символы запрещенные для имен и папок на сайте. Это самое простое в реализации.
Дополнительно, запомните следующие правила и постарайтесь им следовать:
- Название файлов не должно начинаться и заканчиваться знаком “Пробел” (space), “Точка” (period), “Дефис” (hyphen) или “Подчеркивание” (underline);
- Не присваивать файлам слишком длинные названия, постараться не превышать 31 символ;
- По возможности всегда использовать только маленькие буквы, некоторые операционные системы чувствительны к регистру;
- Избегайте использование знака “Пробел” и “Подчеркивание”, если название файла состоит из нескольких слов. В этом случае лучше используйте знак “Дефис”.
- Не используйте отличные от латиницы буквы для названий файлов и папок (русские, китайские, немецкие с умляут и др.). Не смотря на широкие возможности современных кодировок типа UTF-8, у некоторых пользователей могут возникнуть трудности с файлами, имеющими такие экзотические символы в названии.
Источник
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 5 июня 2015; проверки требуют 27 правок.
Отображение содержимого каталога C:temp — имён находящихся в нём файлов — по команде dir в командном итерпретаторе ОС Windows
И́мя фа́йла — строка символов, однозначно определяющая файл в некотором пространстве имён файловой системы (ФС), обычно называемом каталогом, директорией или папкой. Имена файлов строятся по правилам, принятым в той или иной файловой и операционной системах (ОС). Многие системы позволяют назначать имена как обычным файлам, так и каталогам и специальным объектам (символическим ссылкам, блочным устройствам и т. п.).
Имя файла является частью полного имени файла, также называемого полным или абсолютным путём к файлу. Полное имя может включать следующие компоненты:
- протокол или способ доступа (http, ftp, file и т. п.);
- имя или адрес компьютера, узла сети (wikipedia.org, 207.142.131.206, \MYCOMPUTER, SYS: и т. п.);
- устройство хранения, диск (C:, /, SYSLIB и т. п.);
- путь к каталогу (/usr/bin, TEMP, [USR.LIB.SRC] и т. п.);
- собственно имя файла, которое может содержать его расширение (.txt, .exe, .COM и т. п.);
- версия или номер ревизии (perl6, ping6 и т. п.)[уточнить].
Имя файла необходимо для того, чтобы к файлу мог обратиться пользователь. В одном каталоге не может быть двух файлов с одинаковыми именами (некоторые файловые системы регистрозависимы, что оставляет возможность для создания файлов, имена которых отличаются регистром символов).
Имя файла обычно состоит из двух частей, разделенных точкой:
- Название (до точки, часто также называют именем);
- Расширение.
Имена файлов в разных системах[править | править код]
Полным, или абсолютным, называется имя файла, содержащее все каталоги до корня файловой системы. Относительные имена файлов не содержат полного пути и обычно привязываются к текущему каталогу.
Windows[править | править код]
Полное имя файла в Windows-системах состоит из буквы диска, после которого ставится двоеточие и обратная наклонная черта (обратный слеш), затем через обратные слеши перечисляются подкаталоги, в конце пишется имя файла. Пример:
C:WindowsSystem32calc.exe
Полное имя файла (включая расширение) в Windows может содержать до 260 символов, данное значение определено константой MAX_PATH в Windows API; например, полное имя файла максимально допустимой длины на диске C будет таким: «C:<256 символов>NULL» (например, «C:<254 символа><1 символ>NULL»). Однако, юникодовые версии некоторых функций позволяют использовать полные имена файлов длиной до 32767 символов, такие имена начинаются с префикса «\?». Пример:
\?C:WindowsSystem32calc.exe
При использовании префикса «\?» необходимо указывать абсолютный путь к файлу, относительные пути не допускаются. При использовании относительных путей максимальная длина полного имени файла определена константой MAX_PATH (260 символов).
UNIX[править | править код]
В UNIX и UNIX-подобных системах полный путь состоит из слеша (/), обозначающего корневой каталог, после которого через слеши перечисляются подкаталоги, в конце пишется имя файла. Пример:
/usr/local/bin/gcc
Пути, начинающиеся не с косой черты, считаются относительными и отсчитываются относительно рабочего каталога. Пример:
../mc при нахождении в каталоге /etc/apache2 эквивалентно /etc/mc.
Особое значение у путей, которые начинаются с тильды (~). Тильда обозначает домашний каталог текущего или указанного пользователя. Пример:
~/Desktop для пользователя user во многих системах и случаях эквивалентно /home/user/Desktop[1]
~admin/passwords для любого пользователя равносильно /home/admin/passwords[1]
~root/test для любого пользователя — то же самое, что и /root/test[1], потому что суперпользователь (root) имеет особый домашний каталог.
- ↑ 1 2 3 Для каталога каждого пользователя в современных ОС может быть настроен произвольный путь.
Запрещённые символы[править | править код]
Многие операционные системы запрещают использование некоторых служебных символов.
Запрещённые символы Windows (в различных версиях):
- — разделитель подкаталогов
- / — разделитель ключей командного интерпретатора
- : — отделяет букву диска или имя альтернативного потока данных
- * — заменяющий символ (маска «любое количество любых символов»)
- ? — заменяющий символ (маска «один любой символ»)
- ” — используется для указания путей, содержащих пробелы
- < — перенаправление ввода
- > — перенаправление вывода
- | — обозначает конвейер
- + — (в различных версиях) конкатенация
Частично запрещённые символы Windows:
- пробел — не допускается в конце имени файла;
- . — не допускается в конце имени файла кроме имён каталогов, состоящих из точек и доступа с префиксом «\?».
Символы, вызывающие проблемы в широко распространённых компонентах:
- % — в Windows используется для подстановки переменных окружения в интерпретаторе команд, вызывает проблемы при открытии файла через стандартный диалог открытия файла;
- ! — в Windows используется для подстановки переменных окружения в интерпретаторе команд, в bash используется для доступа к истории[1];
- @ — в интерпретаторах команд вызывает срабатывание функций, предназначенных для почты.
В именах файлов UNIX и некоторых UNIX-подобных ОС запрещен слеш (/) — разделитель подкаталогов — и символ конца C-строки ( ). Перечисленные выше символы (кроме слеша) использовать можно, но из соображений совместимости их лучше избегать.
Расширение имени файла[править | править код]
Расширение имени файла (англ. filename extension, часто говорят просто расширение файла или расширение) — последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) файла. Это один из распространённых способов, с помощью которых пользователь или программное обеспечение компьютера может определить тип данных, хранящихся в файле. Расширение отделяется от основной части имени файла последней точкой. Иногда могут использоваться несколько расширений, следующих друг за другом, например, «.tar.gz».
ОС или менеджер файлов могут устанавливать соответствия между расширениями файлов и приложениями. Когда пользователь открывает файл с зарегистрированным расширением, автоматически запускается соответствующая этому расширению программа. Некоторые расширения могут показывать, что файл является исполняемым (в Windows).
См. также[править | править код]
- inode
Примечания[править | править код]
- ↑ Вызывает проблему в команде видаecho “$(ls ‘Привет мир!’)”
. Рабочий вариант команды:
echo “$(ls ‘Привет мир’!)”.
Литература[править | править код]
- Робачевский А. Н., Немнюгин С. А., Стесик О. Л. Имен файлов / Базовая файловая система System V / Глава 4. Файловая система // Операционная система UNIX. — 2-е изд. — СПб.: БХВ-Петербург, 2008. — С. 338—339. — 656 с. — ISBN 978-5-94157-538-1.
Источник
Главная / Операционные системы /
Основы работы в ОС Linux / Тест 4
Упражнение 1:
Номер 1
Какие символы не могут содержаться в именах файлов в Linux?
Ответ:
 (1) символ с кодом 0 
 (2) символ 1 
 (3) символ / 
 (4) символ - 
Номер 2
Какие символы не рекомендуется употреблять в именах файлов в Linux?
Ответ:
 (1) символ с кодом 63 
 (2) символ ; 
 (3) символ / 
 (4) символ > 
Номер 3
Какие символы могут содержать имена файлов в Linux?
Ответ:
 (1) символ с кодом 0 
 (2) символ ; 
 (3) символ / 
 (4) символ > 
Упражнение 2:
Номер 3
С помощью какой команды можно создать каталог ‘Myfiles’?
Ответ:
 (1) mkdir myfiles 
 (2) mkdir My\files 
 (3) mkdir Myfiles 
 (4) mkdir “Myfiles” 
Упражнение 3:
Номер 1
Что означает точка, если она является первым символом имени файла?
Ответ:
 (1) файл не имеет имени, только расширение 
 (2) файл считается скрытым для некоторых команд 
 (3) ничего не означает 
Номер 2
Что означает точка, если она является последним символом имени файла?
Ответ:
 (1) файл не имеет имени, только расширение 
 (2) файл считается скрытым для некоторых команд 
 (3) ничего не означает 
Номер 3
Что означает точка, если она не является первым символом имени файла?
Ответ:
 (1) файл не имеет имени, только расширение 
 (2) файл считается скрытым для некоторых команд 
 (3) ничего не означает 
Упражнение 4:
Номер 1
Как строится каталоговая структура в Linux?
Ответ:
 (1) отдельно для каждого физического носителя 
 (2) единая для всех носителей 
 (3) корневой каталог каждой каталоговой структуры обозначается какой-нибудь буквой латинского алфавита 
Номер 2
Как строится каталоговая структура в Windows?
Ответ:
 (1) отдельно для каждого физического носителя 
 (2) единая для всех носителей 
 (3) корневой каталог каждой каталоговой структуры обозначается какой-нибудь буквой латинского алфавита 
Номер 3
Как строится каталоговая структура в UNIX?
Ответ:
 (1) отдельно для каждого физического носителя 
 (2) единая для всех носителей 
 (3) корневой каталог каждой каталоговой структуры обозначается какой-нибудь буквой латинского алфавита 
Упражнение 5:
Номер 1
Какое из данных имен является полным именем файла?
Ответ:
 (1) /home/User/file.htm 
 (2) file.htm 
 (3) ../file.htm 
Номер 2
Какое из данных имен является относительным путем к файлу?
Ответ:
 (1) /usr/local/sbin/sdf 
 (2) /usr/sbin/sdf 
 (3) ../ksave/file.htm 
Номер 3
Какое из данных имен является Полным именем файла?
Ответ:
 (1) filesystem1.htmfilesystem1.htm 
 (2) /home/kos/ve/book/filesystem1.htm 
 (3) ../filesystem1.htm 
Упражнение 6:
Номер 1
Перечислите основные стандартно создаваемые каталоги той файловой структуры, которая создается при установке дистрибутива Red Hat
Ответ:
 (1) /bin 
 (2) /boot 
 (3) /mod 
 (4) /proc 
 (5) /ent 
Номер 2
Перечислите основные стандартно создаваемые каталоги той файловой структуры, которая создается при установке дистрибутива Red Hat
Ответ:
 (1) /dev 
 (2) /etc 
 (3) /var 
 (4) /proc 
 (5) /ent 
Номер 3
Перечислите основные стандартно создаваемые каталоги той файловой структуры, которая создается при установке дистрибутива Red Hat
Ответ:
 (1) /sys 
 (2) /boot 
 (3) /mod 
 (4) /lis 
 (5) /ent 
Упражнение 7:
Номер 1
Каково назначение каталога /etc?
Ответ:
 (1) он содержит, в основном, готовые к исполнению программы, большинство из которых необходимы во время старта системы 
 (2) он содержит основные постоянные файлы для загрузки системы, в частности загружаемое ядро 
 (3) каталог специальных файлов или файлов устройств 
 (4) этот каталог и его подкаталоги содержат большинство данных, необходимых для начальной загрузки системы и основные конфигурационные файлы 
Номер 2
Каково назначение каталога /bin?
Ответ:
 (1) он содержит, в основном, готовые к исполнению программы, большинство из которых необходимы во время старта системы 
 (2) он содержит основные постоянные файлы для загрузки системы, в частности загружаемое ядро 
 (3) каталог специальных файлов или файлов устройств 
 (4) этот каталог и его подкаталоги содержат большинство данных, необходимых для начальной загрузки системы и основные конфигурационные файлы 
Номер 3
Каково назначение каталога /dev?
Ответ:
 (1) он содержит, в основном, готовые к исполнению программы, большинство из которых необходимы во время старта системы 
 (2) он содержит основные постоянные файлы для загрузки системы, в частности загружаемое ядро 
 (3) каталог специальных файлов или файлов устройств 
 (4) этот каталог и его подкаталоги содержат большинство данных, необходимых для начальной загрузки системы и основные конфигурационные файлы 
Упражнение 8:
Номер 1
Что с точки зрения Linux наряду с обычными файлами и каталогами является файлами?
Ответ:
 (1) файлы физических устройств 
 (2) именованные каналы  
 (3) гнезда 
 (4) символические ссылки 
Упражнение 9:
Номер 1
Что делает команда chmod g+w file_name?
Ответ:
 (1) предоставляет всем пользователям системы право на выполнение данного файла 
 (2) предоставляет всем пользователям группы право на выполнение данного файла 
 (3) предоставляет всем пользователям системы право на запись данного файла 
 (4) предоставляет всем пользователям группы право на запись данного файла 
 (5) предоставляет всем пользователям все права 
Номер 2
Что делает команда chmod a+w file_name?
Ответ:
 (1) предоставляет всем пользователям системы право на выполнение данного файла 
 (2) предоставляет всем пользователям группы право на выполнение данного файла 
 (3) предоставляет всем пользователям системы право на запись данного файла 
 (4) предоставляет всем пользователям группы право на запись данного файла  
 (5) предоставляет всем пользователям все права 
Номер 3
Что делает команда chmod g+x file_name?
Ответ:
 (1) предоставляет всем пользователям системы право на выполнение данного файла 
 (2) предоставляет всем пользователям группы право на выполнение данного файла 
 (3) предоставляет всем пользователям системы право на запись данного файла 
 (4) предоставляет всем пользователям все права 
Упражнение 10:
Номер 1
C помощью какой команды можно удалить непустой каталог со всеми входящими в него подкаталогами?
Ответ:
 (1) rm * 
 (2) rm с опцией –r 
 (3) rmdir 
 (4) rm 
Номер 2
C помощью какой команды можно удалить пустой каталог?
Ответ:
 (1) rm * 
 (2) rmdir 
 (3) rm 
Номер 3
C помощью какой команды можно удалить все файлы в текущем каталоге?
Ответ:
 (1) rm 
 (2) remove 
 (3) rmdir 
 (4) move 
Упражнение 11:
Номер 1
Какой комплекс из программ является основным средством архивирования в UNIX?
Ответ:
 (1) arj 
 (2) rar 
 (3) tar 
 (4) pkzip 
 (5) gzip 
Номер 2
Какие из программ являются основными программами архивирования в UNIX?
Ответ:
 (1) arj 
 (2) rar 
 (3) tar 
 (4) pkzip 
 (5) gzip 
Номер 3
Какой архиватор не сжимает данные, а лишь объединяет их в единый файл с последовательным доступом для последующей записи на ленту?
Ответ:
 (1) arj 
 (2) rar 
 (3) tar 
 (4) pkzip 
 (5) gzip 
Упражнение 12:
Номер 1
Какие параметры как минимум, надо указать команде mount?
Ответ:
 (1) устройство 
 (2) тип файловой системы 
 (3) точку монтирования 
 (4) уровень дампа 
Номер 2
Какие параметры принимает команда mount?
Ответ:
 (1) устройство 
 (2) тип файловой системы 
 (3) точку монтирования 
Номер 3
Какой конфигурационный файл обеспечивает автоматическое монтирование файловых систем в процессе загрузки?
Ответ:
 (1) fsauto 
 (2) fstab 
 (3) mount.conf 
Источник