Встроенные команды ТCL


file

        Команда для работы с файлами и их именами.

         Синтаксис
        file option name?arg arg...?

        Описание

        Эта команда осуществляет различные действия с файлами, их именами или свойствами. Аргумент name содержит имя файла. Если он начинается с символа «~», то перед выполнением команды выполняются «тильда»-подстановки. Опция команды указывает, какие действия необходимо выполнить с файлом. Ниже приведены возможные опции. В команде их имена могут быть сокращены до уровня, сохраняющего уникальность их имен.

file atimename
        Возвращает десятичную строку, содержащую время последнего доступа к файлу name. Время представляется стандартным для POSIX образом в числе секунд от фиксированного начального момента (обычно, с 1 января 1970 г.). Если файл не существует или время последнего доступа не может быть получено, выдается сообщение об ошибке.

file attributes name
file attributes name?option?
file attributes name?option value option value...?

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

        На UNIX-платформах:

-group
        Возвращает или устанавливает имя группы. В команде группа может быть задана числовым идентификатором, но возвращается всегда имя группы.

-owner
        Возвращает или устанавливает имя «хозяина» файла. В команде хозяин может быть задан числовым идентификатором, но возвращается всегда имя хозяина.

-permissions
        Возвращает или устанавливает восьмеричный код, используемый командой операционной системы chmod. Символьное описание соответствующих атрибутов файла не поддерживается.

        На Windows-платформах:

        На Windows-платформах поддерживаются атрибуты: -archive, -hidden, -longname (атрибут не может быть установлен), -readonly, -shortname (атрибут не может быть установлен), -system.

        На Macintosh-платформах:

        На Macintosh-платформах поддерживаются атрибуты: -creator, -hidden, -readonly, -type.

file copy?-force??- -? source target
file copy ?-force??- -? source?source...? targetDir

        Первая форма используется для того, чтобы скопировать файл или каталог source соответственно в файл или каталог target. Вторая форма используется, чтобы скопировать файл(ы) или каталог(и) внутрь существующего каталога targetDir. Если один из аргументов source есть имя каталога, то этот каталог копируется рекурсивно вместе со всем его содержимым. При копировании существующие файлы не перезаписываются, если только не указана опция -force. Попытки перезаписать непустой каталог, а также перезаписать каталог файлом или файл каталогом приводят к ошибке, даже если опция -force указана. Аргументы команды обрабатываются в порядке перечисления до первой ошибки. Отметка «--» означает конец опций. Следующий аргумент считается именем файла или каталога, даже если он начинается с символа «-».

file delete ?-force??- -? pathname?pathname...?
        Удаляет файлы или каталоги, заданные аргументами pathname. Непустые каталоги удаляются, только если задана опция -force. Попытка удалить несуществующий файл не рассматривается как ошибка. Попытка удалить файл, доступный только для чтения, приведет к удаления файла, даже если опция -force не задана. Аргументы команды обрабатываются в порядке перечисления до первой ошибки. Отметка «--» означает конец опций. Следующий аргумент считается именем файла или каталога, даже если он начинается с символа «-».

filedirname name
        Возвращает имя, составленное из всех элементов name, кроме последнего. Если name — относительное имя файла и состоит из единственного элемента, возвращает «.» («:» для Macintosh). Если имя указывает на корневой каталог, возвращается имя корневого каталога.

        Например:

        file dirname с:/

вернет с:/.

        «Тильда»-подстановки выполняются, только если они необходимы для формирования правильного результата.

        Например:

        file dirname ~/src/foo.c

вернет ~/src, тогда как

        file dirname

вернет /home (или что-то подобное).

file executable name
        Возвращает 1, если файл name исполнимый, и 0 в противном случае.

file exists name
        Возвращает 1, если файл name существует, и пользователь имеет права на просмотр каталога, в котором лежит файл, и 0 в противном случае.

file extension name
        Возвращает все символы в name, начиная с последней точки в последнем элементе. Если в последнем элементе нет точек, возвращается пустая строка.

file isdirectory name
        Возвращает 1, если name — имя каталога, и 0 в противном случае.

file isfile name
        Возвращает 1, если файл name — регулярный файл, и 0 в противном случае.

file join name?name...?
        Соединяет аргументы name в одно имя с помощью разделителя, используемого на данной платформе. Если очередной аргумент name представляет собой относительное имя, он присоединяется к предыдущим, в противном случае предыдущие аргументы отбрасываются, и процесс формирования имени начинается заново с текущего аргумента.

        Например:

        file join a b /foo bar

вернет /foo/bar.

        Аргументы name могут содержать разделитель, это не помешает получить правильный результат для используемой платформы («/» для Unix и Windows, «:» для Macintosh).

file lstat name varName
        To же самое, что опция stat, описанная ниже, за исключением того, что используется команда ядра lstat вместо stat. Это означает, что если name есть имя связи, то команда вернет данные о связи, а не об исходном файле. Для платформ, не поддерживающих связи, команды полностью идентичны.

file mkdir dir?dir...?
        Создает все перечисленные каталоги. Для каждого аргумента dir команда создает все несуществующие родительские каталоги и сам каталог dir. Если указан существующий каталог, ничего не происходит. При этом команда считается выполненной успешно. Попытка перезаписать существующий файл каталогом приведет к ошибке. Аргументы команды обрабатываются в порядке перечисления до первой ошибки.

file mtimename
        Возвращает десятичную строку, содержащую время последнего изменения файла name. Время представляется стандартным для POSIX образом в числе секунд от фиксированного начального момента (обычно, с 1 января 1970 г.). Если файл не существует или время последнего изменения не может быть получено, выдается сообщение об ошибке.

file nativename name
        Возвращает имя файла в виде, характерном для используемой платформы. Опция полезна для подготовки исполнения файла с помощью команды exec под Windows.

file owned name
        Возвращает 1, если файл name принадлежит пользователю, и 0 в противном случае.

file pathtype name
        Возвращает одно из значений absolute, relative, volumerelative. Если name указывает на определенный файл в определенном томе, возвращается absolute. Если name указывает на имя файла относительно текущего рабочего каталога — возвращается relative. Если name указывает имя файла относительно текущего рабочего каталога в определенном томе или на определенный файл в текущем рабочем томе, возвращается volumerelative.

file readable name
        Возвращает 1, если файл name доступен для чтения пользователю, и 0 в противном случае.

file readlink name
        Возвращает имя связи name (например, имя файла, на который указывает name). Если name не есть связь, или ее невозможно прочитать, возвращает ошибку. На платформах, на которых связи не поддерживаются, опция не определена.

file rename ?-force??- -? source target
file rename ?-force??- -? source?source...? targetDir

        Первая форма используется для того, чтобы переименовать файл или каталог source соответственно в файл или каталог target (и переместить их в соответствующий каталог, если это необходимо). Вторая форма используется, чтобы переместить файл(ы) или каталог(и) внутрь существующего каталога targetDir. Если один из аргументов source есть имя каталога, то этот каталог перемещается рекурсивно вместе со всем его содержимым. При перемещении существующие файлы не перезаписываются, если только не указана опция -force. Попытки перезаписать непустой каталог, а также перезаписать каталог файлом или файл каталогом приводят к ошибке, даже если опция -force указана. Аргументы команды обрабатываются в порядке перечисления до первой ошибки. Отметка «--» означает конец опций. Следующий аргумент считается именем файла или каталога, даже если он начинается с символа «-».

file rootname name
        Возвращает все символы в name за исключением последней точки в последнем элементе. Если в последнем элементе нет точек, возвращается name.

file size name
        Возвращает десятичную строку, содержащую размер файла в байтах. Если файл не существует или его размер не может быть получен, выдается ошибка.

file split name
        Возвращает список элементов пути name. Первый элемент списка при этом имеет тот же тип пути, что и name. Все остальные элементы — относительные. Разделители удаляются, если только они не необходимы для указания на относительный тип элементов. Например, под Unix

        file split /foo/~bar/bar

вернет / foo./~bar bar, чтобы гарантировать, что последующие команды не попытаются выполнить «тильда»-подстановку в третьем элементе.

file stat name varName
        Исполняет вызов функции ядра stat и записывает возвращаемую информацию о name в элементы массива varName. Формируются следующие элементы массива: atime, ctime, dev, gid, ino, mode, mtime, nlink, size, type, uid. Значения всех элементов, кроме type, — десятичные строки. Описания их приведены в описании команды ядра stat. Элемент type содержит тип файла в том же виде, в каком он возвращается командой file type. Команда file stat возвращает пустую строку.

file tail name
        Возвращает все символы в name после последнего разделителя каталогов. Если в name нет каталогов, возвращает name.

file type name
        Возвращает строку, содержащую тип файла. Возможные значения file, directory, character Special, blockSpecial, fifo, link или socket.

file volume
        Возвращает список, содержащий абсолютные пути ко всем подмонтированным томам. На Macintosh-платформах это список всех подмонтированных дисков, локальных и сетевых. На Unix-платформах команда всегда возвращает «/», поскольку все файловые системы монтируются как локальные. На Windows-платформах команда возвращает список локальных дисков (например, {а:/ с:/}).

file writable name
        Возвращает 1, если файл name доступен для записи, и 0 в противном случае.
Hosted by uCoz