Файловые системы 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
.