projman/hlp/ru/tcl/file.html

398 lines
23 KiB
HTML
Raw Normal View History

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