Spec-Zone.ru › Octave 6

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

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

: movefile f1
: movefile f1 f2
: movefile f1 f2 f
: movefile (f1)
: movefile (f1, f2)
: movefile (f1, f2, 'f')
: [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
: [err, msg] = rename (old, new)

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

При успешном выполнении err равно 0, а msg — пустая строка. В противном случае err отлично от нуля, а 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.

: [err, msg] = unlink (file)

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

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

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

: link old new
: [err, msg] = link (old, new)

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

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

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

: symlink old new
: [err, msg] = symlink (old, new)

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

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

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

: 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 содержит уникальный идентификатор сообщения.

При создании каталога права будут установлены на 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)
: confirm_recursive_rmdir (new_val, "local")

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

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

См. также: rmdir.

: err = mkfifo (name, mode)
: [err, msg] = mkfifo (name, mode)

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

mode интерпретируется как восьмеричное число и обрабатывается с учётом umask. Конечный рассчитанный режим — mode - umask.

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

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

: 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.

: S_ISBLK (mode)

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

Значение mode предполагается возвращаемым из вызова stat.

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

: S_ISCHR (mode)

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

Значение mode предполагается возвращаемым из вызова stat.

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

: S_ISDIR (mode)

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

Значение mode предполагается возвращаемым из вызова stat.

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

: S_ISFIFO (mode)

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

Значение mode предполагается возвращаемым из вызова stat.

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

: S_ISLNK (mode)

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

Значение mode предполагается возвращаемым из вызова stat.

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

: S_ISREG (mode)

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

Значение mode предполагается возвращаемым из вызова stat.

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

: S_ISSOCK (mode)

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

Значение mode предполагается возвращаемым из вызова stat.

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

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

Возвращает информацию о файле file.

Если операция выполнена успешно, status — 1, а msg — структура со следующими полями:

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.

Если attrib завершается ошибкой, msg — это непустая строка, содержащая сообщение об ошибке, а msg_id — непустая строка "fileattrib".

Без входных аргументов возвращает информацию о текущем каталоге.

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

См. также: glob.

: tf = isfile (f)

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

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

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

: 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.

: isfolder (f)
: tf = isfolder (f)

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

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

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

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

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

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

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

: 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
      }

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

: file_in_path (path, file)
: 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.

: filesep ()
: filesep ("all")

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

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

См. также: pathsep.

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

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

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

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

: filename = fullfile (dir1, dir2, …, file)
: filenames = fullfile (…, files)

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

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

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

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.

: tilde_expand (string)
: 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.

: make_absolute_filename (file)

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

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

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

: 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 имя файла со пробелами.txt). Эта функция возвращает true, если пути в filepath1 и filepath2 фактически ссылаются на один и тот же файл или папку, и false в противном случае.

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

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

: 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–2022 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/v6.4.0/Filesystem-Utilities.html

Spec-Zone.ru

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