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 вернет сведения о фактическом файле, на который ссылается ссылка. Используйте 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

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

system

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

hidden

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

directory

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

UserRead
GroupRead
OtherRead

True, если пользователь (группа; другие пользователи) имеет разрешение на чтение file.

UserWrite
GroupWrite
OtherWrite

True, если пользователь (группа; другие пользователи) имеет разрешение на запись в file.

UserExecute
GroupExecute
OtherExecute

True, если пользователь (группа; другие пользователи) имеет разрешение на выполнение file.

Если атрибут неприменим (например, архивный атрибут в Unix), соответствующему полю присваивается значение NaN.

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

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

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

: tf = isfile (f)

Вернуть true, если f является обычным файлом, и false в противном случае.

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

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

: tf = isdir (f)

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

Вернуть true, если f является каталогом, и false в противном случае.

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

tf = ! isempty (file_in_loadpath (f))

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

: tf = isfolder (f)

Вернуть true, если f является каталогом, и false в противном случае.

Если 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 массив строк шаблонов (в виде символьного массива или массива ячеек) и возвращает массив ячеек с именами файлов, соответствующими любому из этих шаблонов, либо пустой массив ячеек, если ни одному шаблону не соответствует ни один файл.

Строки шаблонов интерпретируются как шаблоны поиска файлов по шаблону glob (так же, как в оболочках 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, эта функция возвращает true, только если filepath1 и filepath2 существуют и указывают на одно и то же местоположение.

См. также: 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–2026 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.4.0/Filesystem-Utilities.html

Spec-Zone.ru

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