Имена файлов

Файловые системы ext2 и ext3 допускают наличие в именах файлов практически любых символов, кроме разделителя директорий (/). Однако я не советую использовать имена, содержащие русские буквы, знаки пунктуации (кроме точки), пробелы, псевдографику, экзотические знаки вроде символа перехода на новую строку. Не стоит также начинать имена файлов с дефиса (-). Тут дело в том, что многие программы, работающие с файлами, принимают в командной строке ключи (опции), начинающиеся с дефиса. Например, вы хотите пролистать каталог по имени -lR командой ls -lR. Но -lR будет воспринято программой ls не как имя каталога, а как ключи -l (выдать подробный листинг) и -R (рекурсивно), и в результате вы получите листинг текущего каталога (так как каталог не указан, программа ls по умолчанию работает с текущим). Во всех остальных случаях дефис в именах файлов вполне допустим и часто используется. Советуем ограничиться следующим набором символов — латинские буквы (большие и маленькие), цифры, знак подчёркивания, дефис (но не в начале), точка.

В файловых системах ext2 и ext3 (в отличие от файловых систем Microsoft Windows) имена файлов являются чувствительными к регистру (case sensitive) — заглавные и маленькие буквы в именах различаются.

Термин «расширение» сохранился со времён, когда операционная система Microsoft DOS была самой популярной для персональных компьютеров типа IBM PC. Файловая система DOS позволяла в именах файлов не более 11 знаков; первые не более 8 из них считались основным именем (base name), а не более 3 последних — расширением (extension) имени. Для отделения основной части имени от расширения использовалась точка (кроме специальных имён — . и ..). Сама точка не считалась частью имени. Имена WORK и WORK. означали одно и то же. Вот пример имени файла наиболее длинного имени: AUTOEXEC.BAT. Многие программы для DOS и Windows придают расширениям чересчур большое значение — например, Microsoft Word будет упорно пытаться открыть файл с расширением .DOC как документ в его родном формате, даже если в файле содержится простой текст. В файловых системах Linux точка — такая же часть имени, что и любой другой символ. Теперь уже WORK и WORK. станут ссылаться на разные файлы. Если угодно, можно по-прежнему называть часть имени файла, следующую за точкой, расширением, хотя точек в имени может быть и несколько. Например, файловому архиву в формате tar, сжатому компрессором lzma, часто дают суффикс .tar.lzma. Большинство программ для Linux не связывают расширение имени файла с его содержимым, либо связывают, но позволяют явно указать тип содержимого файла с помощью опций. Тот же Perl будет запускать свои программы по имени, независимо от того, какое расширение использовано — .pl, .plx или .cgi, и есть ли оно вообще.

Некоторые программы вроде текстовых редакторов, работающие с файлами, и «на месте» изменяющие их содержимое, способны оставлять резервные копии. Имена таких копий обычно получаются из исходных имён добавлением знака ~ в конце, например, linux.html~.

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

% ls docbook linux/ perl/

и

% ls -a docbook ./ ../ linux/ perl/ .svn/

В последнем примере в директории docbook обнаружились скрытые объекты: директории ., .. и .svn.

Информатика-54