Spec-Zone.ru › Octave 5

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.

END_OF_DOCUMENT_MARKER
[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.

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

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

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

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

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

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

make_absolute_filename (file)

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

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

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

is_absolute_filename (file)

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

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

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/v5.2.0/Filesystem-Utilities.html

Spec-Zone.ru

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