Команда для работы с файлами и их именами.
Эта команда осуществляет различные действия с файлами, их
именами или свойствами. Аргумент name содержит имя
файла. Если он начинается с символа "~", то перед
выполнением команды выполняются "тильда"-подстановки,
как описано в filename.
Опция команды указывает, какие действия необходимо выполнить с
файлом. Ниже приведены возможные опции. В команде их имена могут
быть сокращены до уровня, сохраняющего уникальность их имен.
- file atime name
- Возвращает десятичную строку, содержащую время последнего
доступа к файлу 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 c:/
вернет c:/.
"Тильда"-подстановки выполняются, только если они
необходимы для формирования правильного результата.
Например:
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
- То же самое, что опция stat, описанная ниже, за
исключением того, что используется команда ядра lstat
вместо stat. Это означает, что если name есть
имя связи, то команда вернет данные о связи, а не об исходном
файле. Для платформ, не поддерживающих связи, команды
полностью идентичны.
- file mkdir dir
?dir...?
- Создает все перечисленные каталоги. Для каждого аргумента
dir команда создает все несуществующие родительские
каталоги и сам каталог dir. Если указан существующий
каталог, ничего не происходит. При этом команда считается
выполненной успешно. Попытка перезаписать существующий файл
каталогом приведет к ошибке. Аргументы команды обрабатываются
в порядке перечисления до первой ошибки.
- file mtime name
- Возвращает десятичную строку, содержащую время последнего
изменения файла 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/baz
вернет / foo/~bar baz, чтобы гарантировать, что
последующие команды не попытаются выполнить "тильда"-
подстановку в третьем элементе.
- 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, characterSpecial,
blockSpecial, fifo, link или socket.
- file volume
- Возвращает список, содержащий абсолютные пути ко всем
подмонтированным томам. На Macintosh-платформах это список
всех подмонтированных дисков, локальных и сетевых. На
Unix-платформах команда всегда возвращает '/',
поскольку все файловые системы монтируются как локальные. На
Windows-платформах команда возвращает список локальных дисков
(например, {a:/ c:/}).
- file writable name
- Возвращает 1, если файл name доступен для
записи, и 0 в противном случае.