Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Термином "имена файловых объектов" обозначаются имена файлов и каталогов, далее для краткости используется термин "имена файлов", при этом правила именования для файлов и каталогов одинаковы. Далее подразумевается, что используется стандартная для Astra Linux файловая система ext4.

Данная статья применима к:

  • ОС СН Смоленск 1.6
  • ОС ОН Орел 2.12
  • ОС СН Смоленск 1.5

Регистр

Имена файлов в Astra Linux чувствительны к регистру. То есть, например: AstraLinux, Astralinux, и astralinux - это три разных имени файлов.

Кодировка кириллицы

Для имен файлов, содержащих символы кириллицы, используется кодировка UTF-8. Следует помнить, что при использовании этой кодировки одному символу кириллицы соответствует 2 байта, другим символам (например, диакритическим) может соответствовать до четырех байт.

Длина имени файла и пути к файлу

Имена файлов в Linux могут быть длиной до 255 байт.

Полная длина пути к файлу (включая имя файла) не должна превышать 4096 байт.

При использовании кириллицы и диакритических символов следует помнить, что одному такому символу соответствует до четырех байт. В частности, увеличение длинны имен при их перекодировке может привести к затруднениям при копировании или разархивировании файлов из систем, использующих кодировку CP-1251 или KOI-8, в системы с кодировкой UTF-8.

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

  • архиватор tar:
    • версия gnu - длина не ограничена (эта версия входит в дистрибутивы современных версия Astra Linux);
    • версия v7 - максимальная длина полного имени файла 99 байт;
    • версия ustar - максимальная длина полного имени файла 256 байт, максимальная длина имени символьной ссылки - 100 байт;

При использовании оптических дисков (файловая система ISO 9660) действуют следующие ограничения:

  • длина пути не более 1024 байта;
  • длина имени файла:
    • оригинальная версия ISO9660  - 32 байта;
    • версия файловой системы Joliet  - 128 байт;
    • версия файловой системы Rockridge - 255 байт.


Специальные символы (метасимволы)

Некоторые символы или последовательности символов зарезервированы для специального использования, и их не рекомендуется применять в именах файлов:

СимволСпециальное значение
*При сравнении имен файлов - любая последовательность символов, кроме точки в начале имени файла (точка в начале имени файла обозначает "скрытый" файл).
?При сравнении имен файлов - один любой символ.
[abC1]При сравнении имен файлов - любой символ из перечисленных в квадратных скобках
[a-z]

При сравнении имен файлов - любой символ из указанного в квадраных скобках диапазона, например:

  • [a-z]  любая латинская буква в нижнем регистре;
  • [A-Z] любая латинская буква в верхнем регистре;
  • [0-9] любая десятичная цифра;
  • [0-9A-Fa-f] любая шестнадцатиричная цифра (в любом регистре);
  • [a-zA-Z0-9] любая латинская буква в любом регистре или десятичная цифра.
/Символ "косая черта". В первой позиции имени обозначает корневой каталог, иначе разделяет имена в полном пути к файлу.
\Символ "обратная косая черта". Придает метасимволу значение обычного символа
Символ "минус". Обычно используется для указания параметров команд, и указание его первым в имени файла может повлечь попытку обработать файл как параметр.
_Символ "подчеркивание". В именах пакетов Debian символ "подчеркивание" отделяет имя пакета от номера версии, в иных случаях специального значения не имеет.
.Символ "точка". В начале имени файла обозначает "скрытый" файл. Кроме того, имя, состоящее из единственного символа "точка" зарезервировано для обозначения текущего каталога.
..Имя, состоящее из двух точек, зарезервировано для обозначения родительского каталога.
$Символ "доллар". Используется для указания имен подстановочных переменных.
&Символ "амперсанд". Используется для указания асинхронного выполнения команды.
"Символ "двойная кавычка". Используется для ограничения строк". (см. раздел "Решение проблем"
'Символ "одинарная кавычка". Используется для ограничения строк". (см. раздел "Решение проблем"
`Символ "обратная кавычка". Используется для подстановки вывода команды.

Символ "пробел". Используется для разделения имен, команд и параметров команд.

(
)
{
}
;

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

Допустимые символы в именах файлов

Минимальный безопасный набор симоволов для использования в именах файлов:

  • буквы (как латиницы, так и кириллицы, в любом регистре);
  • цифры;
  • символ "." (точка);
  • символ "_" (подчеркивание)
  • символ "-" (тире).

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

Решение проблем с метасимволами в именах файлов при работе в командной строке

В Astra Linux можно создать имена файлов содержащие любой символ, включая непечатные (невидимые) символы и метасимволы. Далее приведены некоторые приемы для работы с такими именами файлов.

Автозавершение

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

Замена невидимых символов

Для указания файлов с невидимыми символами можно использовать символ "*", обозначающий любой символ, например, переименовать файл с именем badname, седержащим невидимый символ:

mv bad*name goodname

Экранирование метасимволов

Для управления файлами с именами, содержащими метасимволы, можно использовать:

  • символы "одинарная кавычка", внутри которых метасимволы потеряют свои специальные значения;
  • символ "обратная косая черта", отменяющий специальное значение следующего за ним символа;

Например, команда:

mv '*Astra*Linux*' Astra\ Linux
позволит переименовать файл с "неудобным" именем *Astra*Linux* в файл с другим "неудобным" именем, содержащим пробел.

Для имен файлов, начинающихся с символа "минус" можно использовать указание их имени относительно текущего каталога:

rm ./-filename
Символы "./" в начале имени файла обозначают "текущий каталог", и позволяют скрыть лидирующее тире, чтобы команда rm не воспринимала имя файла как опцию. 


  • No labels