Файловые системы 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 docbooklinux/ perl/
и
%ls -a docbook./ ../ linux/ perl/ .svn/
В последнем примере в директории docbook
обнаружились скрытые объекты: директории ., .. и
.svn.