projman/hlp/ru/tcl/file.html
2018-02-05 17:23:37 +03:00

398 lines
23 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
<head>
<title>file</title>
</head>
<body>
<h1>file</h1>
<p> Команда для работы с файлами и их именами. </p>
<pre>
<strong>file</strong> <em>option</em> <em>name</em> ?<em>arg</em> <em>arg</em>...?
</pre>
<h2>ОПИСАНИЕ</h2>
<p> Эта команда осуществляет различные действия с файлами, их
именами или свойствами. Аргумент <em>name</em> содержит имя
файла. Если он начинается с символа &quot;~&quot;, то перед
выполнением команды выполняются &quot;тильда&quot;-подстановки,
как описано в <a href=filename.html><strong>filename</strong></a>.
Опция команды указывает, какие действия необходимо выполнить с
файлом. Ниже приведены возможные опции. В команде их имена могут
быть сокращены до уровня, сохраняющего уникальность их имен.</p>
<dl>
<dt><a name=atime></a><strong>file atime</strong> <em>name</em></dt>
<dd> Возвращает десятичную строку, содержащую время последнего
доступа к файлу <em>name</em>. Время представляется стандартным
для POSIX образом в числе секунд от фиксированного начального
момента (обычно, с 1 января 1970 г.). Если файл не существует
или время последнего доступа не может быть получено, выдается
сообщение об ошибке.
</dd>
<dt><a name=attributes></a><strong>file attributes</strong>
<em>name</em></dt>
<dt><strong>file attributes</strong> <em>name</em> ?<em>option</em>?</dt>
<dt><strong>file attributes</strong> <em>name</em> ?<em>option</em>
<em>value</em> <em>option</em> <em>value</em>...?</dt>
<dd><p>Эта подкоманда возвращает или устанавливает зависящие от
платформы атрибуты файла. Первая форма возвращает список
атрибутов и их значений, вторая возвращает значение
указанного атрибута, а третья - позволяет установить
значения одного или нескольких атрибутов. Возможные атрибуты
перечислены ниже.</p>
<h3>НА UNIX-ПЛАТФОРМАХ:</h3>
<ul>
<li><strong>-group</strong> - возвращает или устанавливает имя
группы. В команде группа может быть задана числовым
идентификатором, но возвращается всегда имя группы.</li>
<li><strong>-owner</strong> - возвращает или устанавливает имя
&quot;хозяина&quot; файла. В команде хозяин может быть задан
числовым идентификатором, но возвращается всегда имя
хозяина.</li>
<li><strong>-permissions</strong> - возвращает или устанавливает
восьмеричный код, используемый командой операционной
системы chmod. Символьное описание соответствующих
атрибутов файла не поддерживается.</li>
</ul>
<h3>НА WINDOWS-ПЛАТФОРМАХ</h3>
<p> На Windows-платформах поддерживаются атрибуты
<strong>-archive</strong>, <strong>-hidden</strong>, <strong>-longname</strong> (атрибут
не может быть установлен), <strong>-readonly</strong>,
<strong>-shortname</strong> (атрибут не может быть установлен),
<strong>-system</strong>.</p>
<h3>НА MACINTOSH-ПЛАТФОРМАХ</h3>
<p>На Macintosh-платформах поддерживаются атрибуты
<strong>-creator</strong>, <strong>-hidden</strong>, <strong>-readonly</strong>,
<strong>-type</strong>.</p>
</dd>
<dt><a name=copy></a><strong>file copy</strong> ?<em>-force</em>?
?<em>--</em>? <em>source target</em></dt>
<dt><strong>file copy</strong> ?<em>-force</em>? ?<em>--</em>?
<em>source</em> ?<em>source</em>...? <em>targetDir</em></dt>
<dd> Первая форма используется для того, чтобы скопировать файл
или каталог <em>source</em> соответственно в файл или каталог
<em>target</em>. Вторая форма используется, чтобы скопировать
файл(ы) или каталог(и) внутрь существующего каталога
<em>targetDir</em>. Если один из аргументов <em>source</em> есть имя
каталога, то этот каталог копируется рекурсивно вместе со всем
его содержимым. При копировании существующие файлы не
перезаписываются, если только не указана опция
<strong>-force</strong>. Попытки перезаписать непустой каталог, а также
перезаписать каталог файлом или файл каталогом приводят к
ошибке, даже если опция <strong>-force</strong>
указана. Аргументы команды обрабатываются в порядке
перечисления до первой ошибки. Отметка &quot;--&quot; означает конец
опций. Следующий аргумент считается именем файла или каталога,
даже если он начинается с символа &quot;-&quot;.
</dd>
<dt><a name=delete></a><strong>file delete</strong> ?<em>-force</em>?
?<em>--</em>? <em>pathname</em> ?<em>pathname</em>...? </dt>
<dd> Удаляет файлы или каталоги, заданные аргументами
<em>pathname</em>. Непустые каталоги удаляются, только если задана
опция <strong>-force</strong>. Попытка удалить несуществующий
файл не рассматривается как ошибка. Попытка удалить файл,
доступный только для чтения, приведет к удаления файла, даже
если опция <strong>-force</strong> не задана. Аргументы команды
обрабатываются в порядке перечисления до первой
ошибки. Отметка &quot;--&quot; означает конец опций. Следующий
аргумент считается именем файла или каталога, даже если он
начинается с символа &quot;-&quot;.
</dd>
<dt><a name=dirname></a><strong>filedirname</strong> <em>name</em></dt>
<dd><p>Возвращает имя, составленное из всех элементов
<em>name</em>, кроме последнего. Если name - относительное имя
файла и состоит из единственного элемента, возвращает
&quot;.&quot; (&quot;:&quot; для Macintosh). Если имя
указывает на корневой каталог, возвращается имя корневого
каталога.</p>
<p>Например:</p>
<pre>
file dirname c:/
</pre>
<p>вернет <strong>c:/</strong>.</p>
<p>&quot;Тильда&quot;-подстановки выполняются, только если они
необходимы для формирования правильного результата.</p>
<p>Например:</p>
<pre>
file dirname ~/src/foo.c
</pre>
<p>вернет <strong>~/src</strong>, тогда как </p>
<pre>
file dirname ~
</pre>
<p>вернет <strong>/home</strong> (или что-то подобное).</p>
</dd>
<dt><a name=executable></a><strong>file executable</strong>
<em>name</em> </dt>
<dd>Возвращает <strong>1</strong>, если файл <em>name</em> исполнимый, и
<strong>0</strong> в противном случае.</dd>
<dt><strong>file exists</strong> <em>name</em></dt>
<dd> Возвращает <strong>1</strong>, если файл <em>name</em> существует,
и пользователь имеет права на просмотр каталога, в котором
лежит файл, и <strong>0</strong> в противном случае.
</dd>
<dt><a name=extension></a><strong>file extension</strong>
<em>name</em> </dt>
<dd> Возвращает все символы в <em>name</em>, начиная с последней
точки в последнем элементе. Если в последнем элементе нет
точек, возвращается пустая строка.
</dd>
<dt> <strong>file isdirectory</strong> <em>name</em> </dt>
<dd><p>Возвращает <strong>1</strong>, если <em>name</em> - имя каталога,
и <strong>0</strong> в противном случае.</p>
<pre>
file isfile <em>name</em>
</pre>
<p>Возвращает <strong>1</strong>, если файл <em>name</em> -
регулярный файл, и <strong>0</strong> в противном случае.</p>
</dd>
<dt><a name=join></a><strong>file join</strong> <em>name</em>
?<em>name</em>...?</dt>
<dd><p> Соединяет аргументы <em>name</em> в одно имя с помощью
разделителя, используемого на данной платформе. Если
очередной аргумент <em>name</em> представляет собой
относительное имя, он присоединяется к предыдущим, в
противном случае предыдущие аргументы отбрасываются, и
процесс формирования имени начинается заново с текущего
аргумента.</p>
<p>Например:</p>
<pre>
file join a b /foo bar
</pre>
<p>вернет <strong>/foo/bar</strong>.</p>
<p>Аргументы <em>name</em> могут содержать разделитель, это не
помешает получить правильный результат для используемой
платформы (&quot;/&quot; для Unix и Windows, &quot;:&quot;
для Macintosh).</p>
</dd>
<dt><a name=lstat></a><strong>file lstat</strong> <em>name</em>
<em>varName</em></dt>
<dd> То же самое, что опция <strong>stat</strong>, описанная ниже, за
исключением того, что используется команда ядра <strong>lstat</strong>
вместо <strong>stat</strong>. Это означает, что если <em>name</em> есть
имя связи, то команда вернет данные о связи, а не об исходном
файле. Для платформ, не поддерживающих связи, команды
полностью идентичны.
</dd>
<dt> <a name=mkdir></a><strong>file mkdir</strong> <em>dir</em>
?<em>dir</em>...? </dt>
<dd> Создает все перечисленные каталоги. Для каждого аргумента
<em>dir</em> команда создает все несуществующие родительские
каталоги и сам каталог <em>dir</em>. Если указан существующий
каталог, ничего не происходит. При этом команда считается
выполненной успешно. Попытка перезаписать существующий файл
каталогом приведет к ошибке. Аргументы команды обрабатываются
в порядке перечисления до первой ошибки.
</dd>
<dt><a name=mtime></a><strong>file mtime</strong> <em>name</em> </dt>
<dd> Возвращает десятичную строку, содержащую время последнего
изменения файла <em>name</em>. Время представляется стандартным
для POSIX образом в числе секунд от фиксированного начального
момента (обычно, с 1 января 1970 г.). Если файл не существует
или время последнего изменения не может быть получено,
выдается сообщение об ошибке.
</dd>
<dt> <strong>file nativename</strong> <em>name</em> </dt>
<dd> Возвращает имя файла в виде, характерном для используемой
платформы. Опция полезна для подготовки исполнения файла с
помощью команды <a href=exec.html><strong>exec</strong></a> под
Windows.
</dd>
<dt><strong>file owned</strong> <em>name</em></dt>
<dd> Возвращает <strong>1</strong>, если файл <em>name</em> принадлежит
пользователю, и 0 в противном случае.
</dd>
<dt><strong>file pathtype</strong> <em>name</em></dt>
<dd> Возвращает одно из значений <strong>absolute</strong>,
<strong>relative</strong>, <strong>volumerelative</strong>. Если <em>name</em>
указывает на определенный файл в определенном томе,
возвращается <strong>absolute</strong>. Если <em>name</em> указывает на
имя файла относительно текущего рабочего каталога -
возвращается <strong>relative</strong>. Если <em>name</em> указывает имя
файла относительно текущего рабочего каталога в определенном
томе или на определенный файл в текущем рабочем томе,
возвращается <strong>volumerelative</strong>.
</dd>
<dt> <strong>file readable</strong> <em>name</em> </dt>
<dd> Возвращает <strong>1</strong>, если файл <em>name</em> доступен для
чтения пользователю, и <strong>0</strong> в противном случае.
</dd>
<dt> <strong>file readlink</strong> <em>name</em></dt>
<dd> Возвращает имя связи <em>name</em> (например, имя файла, на
который указывает <em>name</em>). Если <em>name</em> не есть
связь, или ее невозможно прочитать, возвращает ошибку. На
платформах, на которых связи не поддерживаются, опция не
определена.
</dd>
<dt><strong>file rename</strong> ?<em>-force</em>? ?<em>--</em>?
<em>source</em> <em>target</em> </dt>
<dt><strong>file rename</strong> ?<em>-force</em>? ?<em>--</em>?
<em>source</em> ?<em>source</em>...? <em>targetDir</em></dt>
<dd> Первая форма используется для того, чтобы переименовать
файл или каталог <em>source</em> соответственно в файл или
каталог <em>target</em> (и переместить их в соответствующий
каталог, если это необходимо). Вторая форма используется,
чтобы переместить файл(ы) или каталог(и) внутрь существующего
каталога <em>targetDir</em>. Если один из аргументов
<em>source</em> есть имя каталога, то этот каталог перемещается
рекурсивно вместе со всем его содержимым. При перемещении
существующие файлы не перезаписываются, если только не указана
опция <em>-force</em>. Попытки перезаписать непустой каталог, а
также перезаписать каталог файлом или файл каталогом приводят
к ошибке, даже если опция <em>-force</em> указана. Аргументы
команды обрабатываются в порядке перечисления до первой
ошибки. Отметка &quot;-&quot; означает конец опций. Следующий
аргумент считается именем файла или каталога, даже если он
начинается с символа &quot;-&quot;.
</dd>
<dt><a name=rootname></a><strong>file rootname</strong>
<em>name</em></dt>
<dd> Возвращает все символы в <em>name</em> за исключением
последней точки в последнем элементе. Если в последнем
элементе нет точек, возвращается <em>name</em>.
</dd>
<dt> <strong>file size</strong> <em>name</em></dt>
<dd> Возвращает десятичную строку, содержащую размер файла в
байтах. Если файл не существует или его размер не может быть
получен, выдается ошибка.
</dd>
<dt><a name=split></a><strong>file split</strong> <em>name</em></dt>
<dd><p>Возвращает список элементов пути name. Первый элемент
списка при этом имеет тот же тип пути, что и name. Все
остальные элементы - относительные. Разделители удаляются,
если только они не необходимы для указания на относительный
тип элементов. Например, под Unix</p>
<pre>
file split /foo/~bar/baz
</pre>
<p>вернет <strong>/ foo/~bar baz</strong>, чтобы гарантировать, что
последующие команды не попытаются выполнить &quot;тильда&quot;-
подстановку в третьем элементе.</p>
</dd>
<dt><strong>file stat</strong> <em>name</em> <em>varName</em></dt>
<dd> Исполняет вызов функции ядра <strong>stat</strong> и записывает
возвращаемую информацию о <em>name</em> в элементы массива
<em>varName</em>. Формируются следующие элементы массива:
<strong>atime</strong>, <strong>ctime</strong>, <strong>dev</strong>, <strong>gid</strong>,
<strong>ino</strong>, <strong>mode</strong>, <strong>mtime</strong>, <strong>nlink</strong>,
<strong>size</strong>, <strong>type</strong>, <strong>uid</strong>. Значения всех элементов,
кроме <strong>type</strong>, - десятичные строки. Описания их приведены
в описании команды ядра <strong>stat</strong>. Элемент <strong>type</strong>
содержит тип файла в том же виде, в каком он возвращается
командой <strong>file type</strong>. Команда <strong>file stat</strong> возвращает
пустую строку.
</dd>
<dt><a name=tail></a><strong>file tail</strong> <em>name</em> </dt>
<dd> Возвращает все символы в <em>name</em> после последнего
разделителя каталогов. Если в <em>name</em> нет каталогов,
возвращает <em>name</em>.
</dd>
<dt><strong>file type</strong> <em>name</em> </dt>
<dd> Возвращает строку, содержащую тип файла. Возможные значения
<strong>file</strong>, <strong>directory</strong>, <strong>characterSpecial</strong>,
<strong>blockSpecial</strong>, <strong>fifo</strong>, <strong>link</strong> или <a
href=socket.html><strong>socket</strong></a>.
</dd>
<dt> <strong>file volume</strong> </dt>
<dd> Возвращает список, содержащий абсолютные пути ко всем
подмонтированным томам. На Macintosh-платформах это список
всех подмонтированных дисков, локальных и сетевых. На
Unix-платформах команда всегда возвращает '<strong>/</strong>',
поскольку все файловые системы монтируются как локальные. На
Windows-платформах команда возвращает список локальных дисков
(например, {a:/ c:/}).
</dd>
<dt> <strong>file writable</strong> <em>name</em> </dt>
<dd> Возвращает <strong>1</strong>, если файл <em>name</em> доступен для
записи, и <strong>0</strong> в противном случае.
</dd>
</dl>
<h2>ПРОБЛЕМЫ ПЕРЕНОСИМОСТИ</h2>
<dl>
<dt> <strong>Unix</strong> </dt>
<dd>На Unix-платформах эти команды всегда используют реальные, а
не эффективные идентификаторы пользователя и группы.</dd>
</dl>
<p>См. также <a href=filename.html><strong>filename</strong></a>.</p>
</body>
</html>