Spec-Zone.ru › Octave 9

Далее: Утилиты архивирования файлов, Предыдущее: Утилиты времени, Вверх: Системные утилиты [Содержание][Индекс]

36.2 Утилиты файловой системы ¶

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

: movefile f1 ¶
: movefile f1 f2 ¶
: movefile f1 f2 f ¶
: movefile (f1) ¶
: movefile (f1, f2) ¶
: movefile (f1, f2, 'f') ¶
: [status] = movefile (…) ¶
: [status, msg] = movefile (…) ¶
: [status, msg, msgid] = movefile (…) ¶

Переместить исходный файл или каталог f1 в назначение f2.

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

Если не указано назначение f2, то назначением является текущий рабочий каталог. Если f2 является именем файла, то f1 переименовывается в f2.

Если флаг принуждения 'f' задан, любые существующие файлы будут перезаписаны без запроса.

В случае успеха, status имеет логическое значение 1, а msg, msgid являются пустыми строками (""). В противном случае, status имеет логическое значение 0, msg содержит зависящее от системы сообщение об ошибке, а msgid содержит уникальный идентификатор сообщения. Обратите внимание, что код состояния является точно противоположным коду команды system.

См. также: rename, copyfile, unlink, delete, glob.

: rename old new ¶
: [status, msg] = rename (old, new) ¶

Изменить имя файла old на new.

В случае успеха, status равен 0, а msg является пустой строкой. В противном случае, status равен -1, а msg содержит зависящее от системы сообщение об ошибке.

См. также: movefile, copyfile, ls, dir.

: copyfile f1 f2 ¶
: copyfile f1 f2 f ¶
: copyfile (f1, f2) ¶
: copyfile (f1, f2, 'f') ¶
: [status, msg, msgid] = copyfile (…) ¶

Скопировать исходный файл(ы) или каталог f1 в назначение f2.

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

Если флаг принуждения 'f' задан, любые существующие файлы будут перезаписаны без запроса.

В случае успеха, status имеет логическое значение 1, а msg, msgid являются пустыми строками (""). В противном случае, status имеет логическое значение 0, msg содержит зависящее от системы сообщение об ошибке, а msgid содержит уникальный идентификатор сообщения. Обратите внимание, что код состояния является точно противоположным коду команды system.

См. также: movefile, rename, unlink, delete, glob.

: unlink (file) ¶
: [status, msg] = unlink (file) ¶

Удалить файл с именем file.

В случае успеха, status равен 0, а msg является пустой строкой. В противном случае, status равен -1, а msg содержит зависящее от системы сообщение об ошибке.

См. также: delete, rmdir.

: link old new ¶
: [status, msg] = link (old, new) ¶

Создать новую ссылку (также известную как жёсткая ссылка) на существующий файл.

В случае успеха, status равен 0, а msg является пустой строкой. В противном случае, status равен -1, а msg содержит зависящее от системы сообщение об ошибке.

См. также: symlink, unlink, readlink, lstat.

: symlink old new ¶
: [status, msg] = symlink (old, new) ¶

Создать символическую ссылку new, которая содержит строку old.

В случае успеха, status равен 0, а msg является пустой строкой. В противном случае, status равен -1, а msg содержит зависящее от системы сообщение об ошибке.

См. также: link, unlink, readlink, lstat.

: result = readlink symlink ¶
: [result, err, msg] = readlink (symlink) ¶

Прочитать значение символической ссылки symlink.

При успешном выполнении, result содержит содержимое символической ссылки symlink, err равно 0, а msg — пустая строка. В противном случае, err отлично от нуля, а msg содержит сообщение об ошибке, зависящее от системы.

См. также: lstat, symlink, link, unlink, delete.

: mkdir dirname ¶
: mkdir parent dirname ¶
: mkdir (dirname) ¶
: mkdir (parent, dirname) ¶
: [status, msg, msgid] = mkdir (…) ¶

Создать директорию с именем dirname в директории parent, создавая промежуточные директории при необходимости.

Если dirname — относительный путь и директория parent не указана, используется текущая рабочая директория.

При успешном выполнении, status имеет логическое значение 1, а msg и msgid — пустые строки (""). В противном случае, status имеет логическое значение 0, msg содержит сообщение об ошибке, зависящее от системы, а msgid содержит уникальный идентификатор сообщения. Обратите внимание, что код состояния является прямо противоположным коду команды system.

При создании директории права будут установлены на 0777 - UMASK.

См. также: rmdir, pwd, cd, umask.

: rmdir dir ¶
: rmdir (dir, "s") ¶
: [status, msg, msgid] = rmdir (…) ¶

Удалить директорию с именем dir.

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

При успешном выполнении, status имеет логическое значение 1, а msg и msgid — пустые строки (""). В противном случае, status имеет логическое значение 0, msg содержит сообщение об ошибке, зависящее от системы, а msgid содержит уникальный идентификатор сообщения.

См. также: mkdir, confirm_recursive_rmdir, pwd.

: val = confirm_recursive_rmdir () ¶
: old_val = confirm_recursive_rmdir (new_val) ¶
: old_val = confirm_recursive_rmdir (new_val, "local") ¶

Запрос или установка внутренней переменной, контролирующей, будет ли Octave запрашивать подтверждение перед рекурсивным удалением дерева директорий.

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

См. также: rmdir.

: mkfifo (name, mode) ¶
: [status, msg] = mkfifo (name, mode) ¶

Создать специальный файл FIFO с именем name и режимом файла mode.

mode интерпретируется как восьмеричное число и подвергается обработке umask. Результирующий рассчитанный режим — mode - umask.

При успешном выполнении, status равно 0, а msg — пустая строка. В противном случае, status равно -1, а msg содержит сообщение об ошибке, зависящее от системы.

См. также: pipe, umask.

: oldmask = umask (mask) ¶

Установить маску разрешений для создания файлов.

Параметр mask — целое число, интерпретируемое как восьмеричное число.

При успешном выполнении, возвращает предыдущее значение маски (как целое число, интерпретируемое как восьмеричное число); в противном случае выводится сообщение об ошибке.

Маска разрешений — понятие UNIX, используемое при создании новых объектов в файловой системе, таких как файлы, директории или именованные FIFO. Объект, который необходимо создать, имеет базовые разрешения в восьмеричном числе mode, которые изменяются в соответствии с восьмеричным значением mask. Конечные разрешения для нового объекта — mode - mask.

См. также: fopen, mkdir, mkfifo.

: [info, err, msg] = stat (file) ¶
: [info, err, msg] = stat (fid) ¶
: [info, err, msg] = lstat (file) ¶
: [info, err, msg] = lstat (fid) ¶

Возвращает структуру info, содержащую следующую информацию о файле file или идентификаторе файла fid.

dev

Идентификатор устройства, содержащего запись о файле в каталоге.

ino

Номер файла.

mode

Режим файла в виде целого числа. Используйте функции S_ISREG, S_ISDIR, S_ISCHR, S_ISBLK, S_ISFIFO, S_ISLNK, или S_ISSOCK, чтобы извлечь информацию из этого значения.

modestr

Режим файла в виде строки из десяти букв или дефисов, как возвращает ls -l.

nlink

Количество ссылок.

uid

Идентификатор пользователя владельца файла.

gid

Идентификатор группы владельца файла.

rdev

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

size

Размер в байтах.

atime

Время последнего доступа в том же формате, что и значения времени, возвращаемые функцией time. См. Утилиты работы со временем.

mtime

Время последней модификации в том же формате, что и значения времени, возвращаемые функцией time. См. Утилиты работы со временем.

ctime

Время последнего изменения статуса файла в том же формате, что и значения времени, возвращаемые функцией time. См. Утилиты работы со временем.

blksize

Размер блоков в файле.

blocks

Количество выделенных блоков для файла.

При успешном вызове err равно 0, а msg — пустая строка. Если файла не существует или произошла другая ошибка, info — пустая матрица, err равно −1, а msg содержит соответствующее сообщение об ошибке системы.

Если file — символическая ссылка, stat вернёт информацию об actual файле, на который указывает ссылка. Используйте lstat, если вам нужна информация о самой символической ссылке.

Например:

[info, err, msg] = stat ("/vmlinuz")
  ⇒ info =
     {
       atime = 855399756
       rdev = 0
       ctime = 847219094
       uid = 0
       size = 389218
       blksize = 4096
       mtime = 847219094
       gid = 6
       nlink = 1
       blocks = 768
       mode = -rw-r--r--
       modestr = -rw-r--r--
       ino = 9316
       dev = 2049
     }
  ⇒ err = 0
  ⇒ msg =

См. также: lstat, ls, dir, isfile, isfolder.

: tf = S_ISBLK (mode) ¶

Возвращает true, если mode соответствует блочному устройству.

Значение mode предполагается возвращённым функцией stat.

См. также: stat, lstat.

: tf = S_ISCHR (mode) ¶

Возвращает true, если mode соответствует символьному устройству.

Значение mode предполагается возвращённым функцией stat.

См. также: stat, lstat.

: tf = S_ISDIR (mode) ¶

Возвращает true, если mode соответствует каталогу.

Значение mode предполагается возвращённым функцией stat.

См. также: stat, lstat.

: tf = S_ISFIFO (mode) ¶

Возвращает true, если mode соответствует fifo.

Значение mode предполагается возвращённым функцией stat.

См. также: stat, lstat.

: tf = S_ISLNK (mode) ¶

Возвращает true, если mode соответствует символической ссылке.

Значение mode предполагается возвращённым функцией stat.

См. также: stat, lstat.

: tf = S_ISREG (mode) ¶

Возвращает true, если mode соответствует обычному файлу.

Значение mode предполагается возвращённым функцией stat.

См. также: stat, lstat.

: tf = S_ISSOCK (mode) ¶

Возвращает true, если mode соответствует сокету.

Значение mode предполагается возвращённым функцией stat.

См. также: stat, lstat.

: fileattrib ¶
: fileattrib file ¶
: fileattrib (file) ¶
: [status, attrib] = fileattrib (…) ¶
: [status, msg, msgid] = fileattrib (…) ¶

Получить информацию об атрибутах файла file.

Если файл или каталог не указаны, информация будет получена для текущей рабочей директории.

При успешном выполнении возвращается структура со следующими полями:

Name

Полное имя файла file.

archive

Истинно, если file является архивом (Windows).

system

Истинно, если file является системным файлом (Windows).

hidden

Истинно, если file является скрытым файлом (Windows).

directory

Истинно, если file является каталогом.

UserRead
GroupRead
OtherRead

Истинно, если у пользователя (группы; других пользователей) есть права на чтение для file.

UserWrite
GroupWrite
OtherWrite

Истинно, если у пользователя (группы; других пользователей) есть права на запись для file.

UserExecute
GroupExecute
OtherExecute

Истинно, если у пользователя (группы; других пользователей) есть права на выполнение для file.

Если атрибут не применим (например, архив в Unix-системе), поле устанавливается в NaN.

Если file содержит символы подстановки, информация обо всех соответствующих файлах возвращается в массиве структур.

Если запрошены результаты, первый — status, который принимает значение 1 при успешном выполнении операции и 0 в противном случае. Второй результат содержит структуру, описанную выше (attrib), если операция прошла успешно; в противном случае второй результат — сообщение об ошибке, зависящее от системы (msg). Третий результат — пустая строка («») при успешном выполнении или уникальный идентификатор сообщения (msgid) в случае сбоя.

См. также: stat, glob.

: tf = isfile (f) ¶

Возвращает истинно, если f является обычным файлом, и ложно в противном случае.

Если f — массив ячеек строк, tf — логический массив того же размера.

См. также: isfolder, exist, stat, is_absolute_filename, is_rooted_relative_filename.

: tf = isdir (f) ¶

Эта функция не рекомендуется. Используйте isfolder или file_in_loadpath вместо неё.

Возвращает истинно, если f является каталогом, и ложно в противном случае.

Примечание о совместимости: функция MATLAB с тем же именем также будет искать f в каталогах пути загрузки. Для эмуляции этого поведения используйте

tf = ! isempty (file_in_loadpath (f))

См. также: isfolder, file_in_loadpath, exist, stat, is_absolute_filename, is_rooted_relative_filename.

: tf = isfolder (f) ¶

Возвращает истинно, если f является каталогом, и ложно в противном случае.

Если f — массив ячеек строк, tf — логический массив того же размера.

См. также: isfile, exist, stat, is_absolute_filename, is_rooted_relative_filename.

: files = readdir (dir) ¶
: [files, err, msg] = readdir (dir) ¶

Возвращает имена файлов в каталоге dir в виде массива ячеек строк.

Если произошла ошибка, возвращает пустой массив ячеек в files. Если успешно, err — 0, а msg — пустая строка. В противном случае err — ненулевое значение, а msg содержит сообщение об ошибке, зависящее от системы.

См. также: ls, dir, glob, what.

: cstr = glob (pattern) ¶

Принимая массив шаблонов в pattern (строковый массив или массив ячеек), возвращает массив ячеек имён файлов, которые соответствуют любому из них, или пустой массив ячеек, если не найдены совпадения.

Строки шаблонов интерпретируются как шаблоны подстановки имён файлов (как они используются в оболочках Unix).

В шаблоне

*

соответствует любой строке, включая пустую,

?

соответствует любому символу, и

[…]

соответствует любому из заключённых символов.

Расширение тильды выполняется для каждого шаблона перед поиском соответствующих имён файлов. Например:

ls
   ⇒
      file1  file2  file3  myfile1 myfile1b
glob ("*file1")
   ⇒
      {
        [1,1] = file1
        [2,1] = myfile1
      }
glob ("myfile?")
   ⇒
      {
        [1,1] = myfile1
      }
glob ("file[12]")
   ⇒
      {
        [1,1] = file1
        [2,1] = file2
      }

Примечание: в Windows не поддерживаются шаблоны, содержащие символы, отличные от ASCII.

См. также: ls, dir, readdir, what.

: fname = file_in_path (path, file) ¶
: fname = file_in_path (path, file, "all") ¶

Возвращает абсолютное имя файла file, если он найден в path.

Значение path должно быть списком каталогов, разделённых двоеточием, в формате, описанном для path. Если файл не найден, возвращается пустая строка. Например:

file_in_path (EXEC_PATH, "sh")
     ⇒ "/bin/sh"

Если второй аргумент — массив ячеек строк, поиск выполняется в каждом каталоге пути для элементов массива ячеек, и возвращается первый совпавший элемент.

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

См. также: file_in_loadpath, dir_in_loadpath, path.

: sep = filesep () ¶
: filesep ("all") ¶

Возвращает зависящий от системы символ, используемый для разделения имен каталогов.

Если "all" задан, функция возвращает все допустимые разделители файлов в виде строки. Список разделителей файлов зависит от системы. Это ‘/’ (прямой слэш) в UNIX или Mac OS X, ‘/’ и ‘\’ (прямой и обратный слэши) в Windows.

См. также: pathsep.

: [dir, name, ext] = fileparts (filename) ¶

Возвращает компоненты каталога, имени и расширения filename.

Входной filename — это строка, которая анализируется. Не предпринимается попытка проверить, существует ли указанное имя файла или каталог.

См. также: fullfile, filesep.

: filename = fullfile (dir1, dir2, …, file) ¶

Создает полное имя файла из отдельных частей.

Функция интеллектуально объединяет любое количество компонентов пути. Возвращаемое значение представляет собой конкатенацию каждого компонента с ровно одним разделителем файлов между каждой частью пути и не более чем одним ведущим и/или завершающим разделителем файлов.

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

fullfile ("/home/username", "data", {"f1.csv", "f2.csv", "f3.csv"})
  ⇒
      {
        [1,1] = /home/username/data/f1.csv
        [1,2] = /home/username/data/f2.csv
        [1,3] = /home/username/data/f3.csv
      }

В системах Windows, хотя разделители файлов прямых слэшей работают, они заменяются обратными слэшами. Кроме того, буквенные обозначения дисков очищаются от ведущих разделителей файлов для получения допустимого пути к файлу.

Примечание: fullfile не выполняет никакой проверки результирующего полного имени файла.

См. также: fileparts, filesep.

: newstr = tilde_expand (string) ¶
: newcstr = tilde_expand (cellstr) ¶

Выполняет расширение тильды для string.

Если string начинается с символа тильды (‘~’), все символы перед первым слэшем (или все символы, если слэша нет) обрабатываются как возможное имя пользователя, а тильда и последующие символы до слэша заменяются домашним каталогом указанного пользователя. Если за тильдой сразу следует слэш, тильда заменяется домашним каталогом пользователя, запустившего Octave.

Если вход представляет собой ячейковый массив строк cellstr, то расширение тильды выполняется для каждого элемента строки.

Примеры:

tilde_expand ("~joeuser/bin")
     ⇒ "/home/joeuser/bin"
tilde_expand ("~/bin")
     ⇒ "/home/jwe/bin"
: [cname, status, msg] = canonicalize_file_name (fname) ¶

Возвращает каноническое имя файла fname.

Если файл не существует, возвращается пустая строка (""). Расширение тильды для fname не выполняется.

См. также: make_absolute_filename, is_absolute_filename, is_rooted_relative_filename, is_same_file, tilde_expand.

: abs_fname = make_absolute_filename (file) ¶

Возвращает полное имя file, начиная с корня файловой системы.

Проверка существования file не выполняется. Расширение тильды для file не выполняется.

См. также: canonicalize_file_name, is_absolute_filename, is_rooted_relative_filename, isfolder, tilde_expand.

: tf = is_absolute_filename (file) ¶

Возвращает true, если file является абсолютным именем файла.

См. также: is_rooted_relative_filename, make_absolute_filename, isfolder.

: same = is_same_file (filepath1, filepath2) ¶

Возвращает true, если filepath1 и filepath2 указывают на один и тот же файл.

Если filepath1 или filepath2 является ячейковым массивом строк, то возвращается массив того же размера, содержащий значения, описанные выше для каждого члена ячейкового массива. Другой аргумент также может быть ячейковым массивом строк (того же размера) или строкой.

Примечания к программированию: В зависимости от операционной системы и файловой системы на один и тот же файл или папку можно ссылаться с помощью разных путей. В частности, пути в операционной системе Windows могут отличаться регистром (file1 по сравнению с FILE1), разделителем файлов (‘\’ по сравнению с ‘/’) и форматом (A~spaces.txt (конвенция 8.3) по сравнению с A filename with spaces.txt). Эта функция возвращает true, если пути в filepath1 и filepath2 действительно указывают на один и тот же файл или папку, и false в противном случае.

Обратите внимание, что в отличие от strcmp, эта функция требует, чтобы filepath1 и filepath2 существовали, а также указывали на одно и то же местоположение, чтобы вернуть true.

См. также: canonicalize_file_name, strcmp.

: tf = is_rooted_relative_filename (file) ¶

Возвращает true, если file является корневым относительным именем файла.

См. также: is_absolute_filename, make_absolute_filename, isfolder.

: val = recycle () ¶
: old_val = recycle (new_val) ¶

Запрашивает или устанавливает предпочтение для переработки удаленных файлов.

Когда переработка включена, команды, которые должны были бы безвозвратно стереть файлы, вместо этого перемещают их во временное местоположение (например, в папку «Корзина»).

Примечание для программистов: Эта функция предоставляется для совместимости с MATLAB, но переработка не реализована в Octave. Чтобы избежать случайной потери данных, будет вызвана ошибка, если будет предпринята попытка включить переработку файлов.

См. также: delete, rmdir.

Далее: Утилиты архивирования файлов, Предыдущее: Утилиты времени, Вверх: Системные утилиты [Содержание][Индекс]

© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Filesystem-Utilities.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API