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

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

Если вы загружаете на сайт файлы (документы, изображения, архивы и пр.), и подразумевается, что доступ к этим файлам будет публичный, а не ограниченный списком избранных товарищей, нужно иметь в виду, что различные многочисленные пользователи сети интернет используют разные устройства ( настольные компьютеры, ноутбуки, планшеты, смартфоны, …) и разные операционные системы (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;
проверки требуют 25 правок.

Отображение содержимого каталога 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. 1 2 3 Для каталога каждого пользователя в современных ОС может быть настроен произвольный путь.

Запрещённые символы[править | править код]

Многие операционные системы запрещают использование некоторых служебных символов.

Запрещённые символы Windows (в различных версиях):

  •  — разделитель подкаталогов
  • / — разделитель ключей командного интерпретатора
  • : — отделяет букву диска или имя альтернативного потока данных
  • * — заменяющий символ (маска «любое количество любых символов»)
  • ? — заменяющий символ (маска «один любой символ»)
  • ” — используется для указания путей, содержащих пробелы
  • < — перенаправление ввода
  • > — перенаправление вывода
  • | — обозначает конвейер
  • + — (в различных версиях) конкатенация

Частично запрещённые символы Windows:

  • пробел — не допускается в конце имени файла;
  • . — не допускается в конце имени файла кроме имён каталогов, состоящих из точек и доступа с префиксом «\?».

Символы, вызывающие проблемы в широко распространённых компонентах:

  • % — в Windows используется для подстановки переменных окружения в интерпретаторе команд, вызывает проблемы при открытии файла через стандартный диалог открытия файла;
  • ! — в Windows используется для подстановки переменных окружения в интерпретаторе команд, в bash используется для доступа к истории[1];
  • @ — в интерпретаторах команд вызывает срабатывание функций, предназначенных для почты.

В именах файлов UNIX и некоторых UNIX-подобных ОС запрещен слеш (/) — разделитель подкаталогов — и символ конца C-строки (). Перечисленные выше символы (кроме слеша) использовать можно, но из соображений совместимости их лучше избегать.

Расширение имени файла[править | править код]

Расширение имени файла (англ. filename extension, часто говорят просто расширение файла или расширение) — последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) файла. Это один из распространённых способов, с помощью которых пользователь или программное обеспечение компьютера может определить тип данных, хранящихся в файле. Расширение отделяется от основной части имени файла последней точкой. Иногда могут использоваться несколько расширений, следующих друг за другом, например, «.tar.gz».

ОС или менеджер файлов могут устанавливать соответствия между расширениями файлов и приложениями. Когда пользователь открывает файл с зарегистрированным расширением, автоматически запускается соответствующая этому расширению программа. Некоторые расширения могут показывать, что файл является исполняемым (в Windows).

Читайте также:  В каком варианте ответа содержится информация почему володя не хотел играть с детьми

См. также[править | править код]

  • inode

Примечания[править | править код]

  1. ↑ Вызывает проблему в команде вида
    echo “$(ls ‘Привет мир!’)”

    . Рабочий вариант команды:

    echo “$(ls ‘Привет мир’!)”

    .

Литература[править | править код]

  • Робачевский А. Н., Немнюгин С. А., Стесик О. Л. Имен файлов / Базовая файловая система System V / Глава 4. Файловая система // Операционная система UNIX. — 2-е изд. — СПб.: БХВ-Петербург, 2008. — С. 338—339. — 656 с. — ISBN 978-5-94157-538-1.

Источник

Виктория Горностаева

21 мая 2015  · 13,4 K

По образованию врач, по профессии — системный аналитик

Потому что эти символы являются служебными и если использовать их в названии файлов, у системы возникнут большие проблемы с пониманием того, что вы хотели сказать.

Возьмем пример с обратной косой чертой ()

Допустим, вы пользователь Windows и вы хотите добавить файл в папку C:UsersPublicMusic

Если ваш файл будет называться melody.mp3, то путь до файла (адрес, по которому компьютер будет искать этот файл, если вы попросите) будет выглядеть как C:UsersPublicMusicmelody.mp3

Это просто и понятно. Но допустим, вы решили назвать файл mymelody.mp3

Путь в такой ситуации выглядел бы как C:UsersPublicMusicmymelody.mp3

Если вы захотите открыть файл, компьютер будет искать папку my внутри папки Music. Естественно, он ее не найдет. Чтобы избежать таких ситуаций, пользователям не разрешается использовать в названиях

Прямая косая черта / тоже относится к служебным символам и используется для параметров команд (это редко нужно рядовому пользователю, конечно).

Символ * тоже относится к служебным: при поиске по файлам он используется для обозначения произвольного набора символов. Например, если вам нужно выбрать все текстовые файлы, начинающиеся на A, вы можете указать в поиске такое: A*.txt и получите список всех подходящих файлов. Очевидно, что использование звездочки в названиях создало бы много проблем.

Что означает вот этот значок на публикации?

Добрый день.

Данный значок на превью статьи в Яндекс Дзене обозначает, что материал проходит проверку (модерацию). Такой значок может появляться при публикации нового материала или после внесения правок в уже опубликованные тексты.

Что такое cookie файлы и почему почти на каждом сайте спрашивают согласен ли я на их использование?

Не столько печеньки, сколько небольшие записи, хранимые ограниченное время на стороне клиента в протоколе HTTP/s, переданные сервером(сайтом).

Изначально файлы cookie действительно использовались для таких рутинных и простых операций, как идентификация на сайте. Пользователю стоит только однажды ввести логин и пароль, и сервер “запоминает” его, высылая ему нужную cookie-запись, которая является парой ключ=значение. В следующий раз, браузер будет всегда отправлять эту запись cookie (ключ=значение) при запросах на сервер, так сервер может отличать разных посетителей на основе их предыдущих действий (не только ввод пароля – куки могут хранить настройки пользователя, например регион/страну или выбранный язык). Конечно, все немного хитрее чем вам кажется – ключем куки не является ваш логин, а пароль не передается в ее значении – есть более безопасный механизм сессий на случай, если куки украдут.

Однако, с течением времени, появились более изощренные и менее очевидные способы использования кук. Например, они используются для того, что бы отслеживать (track) действия пользователя в пределах сайта, а еще позже – отслеживать сайты, которые пользователь посещает. Это стало возможным благодаря развитию JavaScript и крупным платформам вроде Google Analytics (аналогично и Яндекс.Метрики), и сотням других чуть менее популярных сервисов, скриптов, приложений, устанавливаеых на сайт. Так, эти платформы умеют точно сопоставлять, что вы искали в интернете и что вы далее сделали, перейда на сайт, на какой из нажатых ссылок в выдаче ваш сеанс был наиболее долгим, что используется в том числе для повышения релевантности ссылки по вашему запросу.

Вы можете посмотреть куки в вашем браузере, например в настройках содержимого в браузере Chrome (All cookies and site data). Вы увидите, что в основном, куки имеют бесполезные значения и почти бесполезные имена ключей, потому что вся магия делается наименее очевидной и выносится в back-end (на сервер), который получает куки при каждом обращении к хосту. Режим инкогнито (и другие аналоги “приватного” режима) основаны именно на том, что браузер создает новую временную базу данных (в которой нет старых кук), и забывает все новые куки, полученные в ходе сеанса (ну и историю не записывает).

В соглашении о приватности (privacy agreement) на различных сайтах вас предупреждают, что сайт использует cookies потому, что технически это позволяет получить исчерпывающую информацию о ваших действиях на этом сайте, хотя сам протокол HTTP анонимен.

Что означает знак $ в начале названия документа Word?

Копирайтер для B2B. Пишу яркие продающие тексты на сложные темы.

Это временный файл, который создает сам Word. Каждый раз, когда Вы сохраняете текст, но не выходите из редактора, Word записывает изменения в подобный временный файл. Если отключат электричество или произойдет еще какая-то неприятность, то из этого временного файла можно будет восстановить последнюю введенную информацию. Ну а если с восстановлением не получится (всяко бывает), то во всяком случае останется исходный файл под своим оригинальным именем. Хоть и без последних правок.

Если же все идет в штатном режиме, то Word сам запишет информацию из временного файла в основной и удалит временный.

Источник

Если вы загружаете на сайт файлы (документы, изображения, архивы и пр.), и подразумевается, что доступ к этим файлам будет публичный, а не ограниченный списком избранных товарищей, нужно иметь в виду, что различные многочисленные пользователи сети интернет используют разные устройства ( настольные компьютеры, ноутбуки, планшеты, смартфоны, …) и разные операционные системы (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, у некоторых пользователей могут возникнуть трудности с файлами, имеющими такие экзотические символы в названии.

Источник

Читайте также:  Какое количество информации в битах содержится в одном килобайте