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,并且消息, 消息ID为空字符串(“”)。否则status为逻辑0,消息包含与系统相关的错误消息,以及消息ID包含唯一的消息标识符。请注意,状态代码与的完全相反系统命令

详见: 重命名, 复制文件, 取消链接, 删去, 地球仪.

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

更改文件名老的.

如果成功,status为0并且消息是空字符串。否则,status为-1并且消息包含系统相关错误消息。

详见: 移动文件, 复制文件, ls, 目录.

 
: 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,并且消息, 消息ID为空字符串(“”)。否则status为逻辑0,消息包含与系统相关的错误消息,以及消息ID包含唯一的消息标识符。请注意,状态代码与的完全相反系统命令

详见: 移动文件, 重命名, 取消链接, 删去, 地球仪.

 

删除名为的文件文件.

如果成功,status为0并且消息是空字符串。否则,status为-1并且消息包含系统相关错误消息。

详见: 删去, rmdir.

 

创建到现有文件的新链接(也称为硬链接)。

如果成功,status为0并且消息是空字符串。否则,status为-1并且消息包含系统相关错误消息。

详见: 符号链接, 取消链接, readlink, lstat.

 

创建符号链接其中包含字符串老的.

如果成功,status为0并且消息是空字符串。否则,status为-1并且消息包含系统相关错误消息。

详见: 链接, 取消链接, readlink, lstat.

 

读取符号链接的值符号链接.

如果成功,结果包含符号链接的内容符号链接, 犯错误为0,并且消息是空字符串。否则,犯错误为非零并且消息包含系统相关错误消息。

详见: lstat, 符号链接, 链接, 取消链接, 删去.

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

创建名为的目录目录名在目录中父级对象亲,如有必要,创建任何中间目录。

如果目录名是一条相对路径,没有父级对象亲如果指定了目录,则使用当前的工作目录。

如果成功,status是逻辑1,并且消息, 消息ID为空字符串(“”)。否则status为逻辑0,消息包含与系统相关的错误消息,以及消息ID包含唯一的消息标识符。请注意,状态代码与的完全相反系统命令

创建目录时,权限将设置为0777-乌马斯克.

详见: rmdir, pwd, cd, 乌马斯克.

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

删除名为的目录目录.

如果为可选的第二个参数提供值s,也递归地删除所有子目录。

如果成功,status是逻辑1,并且消息, 消息ID是空字符字符串(“”)。否则status为逻辑0,消息包含与系统相关的错误消息,以及消息ID包含唯一消息标识符。

详见: mkdir, confirm_recurive_rmdir, pwd.

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

查询或设置内部变量,该变量控制Octave在递归删除目录树之前是否要求确认。

当从具有的函数内部调用时地方的参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。

详见: rmdir.

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

创建一个名为的FIFO特殊文件name使用文件模式mode.

mode被解释为Octave数,并接受umask处理。最终计算模式为mode- 乌马斯克.

如果成功,status为0并且消息是空字符串。否则,status为-1并且消息包含系统相关错误消息。

详见: , 乌马斯克.

 
: oldmask = umask (mask)

设置文件创建的权限掩码。

参数面具是一个整数,解释为Octave数。

如果成功,则返回掩码的上一个值(作为一个整数,以Octave表示);否则将打印错误消息。

权限掩码是在文件系统(如文件、目录或命名的FIFO)上创建新对象时使用的UNIX概念。要创建的对象具有Octave的基本权限mode根据的Octave值进行修改面具。新对象的最终权限是mode- 面具.

详见: fopen, mkdir, mkfifo.

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

返回结构体信息包含以下信息文件或文件标识符fid.

dev

包含此文件的目录项的设备的ID。

ino

文件的文件号。

mode

文件模式,作为一个整数。使用函数S_ISREG,S_ISDIR, _ ISCHR, S_ISBLK,_ ISFIFO, _ islink_锁定从该值中提取信息。

modestr

文件模式,从返回的十个字母或短划线组成的字符串ls-l.

nlink

链接数。

uid

文件所有者的用户ID。

gid

文件组的组ID。

rdev

块或字符特殊文件的设备ID。

size

大小(以字节为单位)。

atime

上次访问的时间,格式与从返回的时间值相同时间详见时间工具.

mtime

上次修改的时间,格式与从返回的时间值相同时间详见时间工具.

ctime

上次文件状态更改的时间与返回的时间值的形式相同时间详见时间工具.

块size

文件中块的大小。

阻碍

为文件赋值的块数。

如果呼叫成功犯错误为0并且消息是一个空字符串。如果该文件不存在,或者发生其他错误,信息是一个空矩阵,犯错误为−1,并且消息包含相应的系统错误消息。

如果文件是一个符号链接,斯达将返回有关链接所引用的实际文件的信息。使用lstat如果您想要有关符号链接本身的信息。

例如

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

详见: lstat, ls, 目录, isfile, isfolder.

 
: tf = S_ISBLK (mode)

如果返回truemode对应于块设备。

的值mode假定是从对的调用返回的斯达.

详见: 斯达, lstat.

 
: tf = S_ISCHR (mode)

如果返回truemode对应于字符设备。

的值mode假定是从对的调用返回的斯达.

详见: 斯达, lstat.

 
: tf = S_ISDIR (mode)

如果返回truemode对应于一个目录。

的值mode假定是从对的调用返回的斯达.

详见: 斯达, lstat.

 
: tf = S_ISFIFO (mode)

如果返回truemode对应于fifo。

的值mode假定是从对的调用返回的斯达.

详见: 斯达, lstat.

 
: tf = S_ISLNK (mode)

如果返回truemode对应于符号链接。

的值mode假定是从对的调用返回的斯达.

详见: 斯达, lstat.

 
: tf = S_ISREG (mode)

如果返回truemode对应于常规文件。

的值mode假定是从对的调用返回的斯达.

详见: 斯达, lstat.

 
: tf = S_ISSOCK (mode)

如果返回truemode对应于一个套接字。

的值mode假定是从对的调用返回的斯达.

详见: 斯达, lstat.

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

关于的报表属性信息文件.

如果未指定任何文件或目录,请返回有关当前工作目录的信息。

如果成功,则输出为具有以下字段的结构体:

Name

的全名文件.

档案文件

如果为True文件是一个存档(Windows)。

系统

如果为True文件是一个系统文件(Windows)。

隐藏的

如果为True文件是一个隐藏文件(Windows)。

目录

如果为True文件是一个目录。

用户读取
组读取
其他读取

如果用户(组;其他用户)具有的读取权限,则为True文件.

UserWrite
GroupWrite
其他写入

如果用户(组;其他用户)具有的写入权限,则为True文件.

用户执行
GroupExecute
其他执行

如果用户(组;其他用户)具有的执行权限,则为True文件.

如果某个属性不适用(例如,Unix系统上的存档),则该字段设置为NaN。

如果文件包含全局字符,则在结构体数组中返回有关所有匹配文件的信息。

如果指定输出,则第一个是status操作成功时取1,否则取0。第二个输出包含上述结构体(attrib)如果手术成功;否则,第二个输出是系统相关的错误消息(消息). 当操作成功时,第三个输出是空字符串(“”),或者是唯一的消息标识符(消息ID)万一发生故障。

详见: 斯达, 地球仪.

 
: tf = isfile (f)

如果返回truef是常规文件,否则为false。

如果f是串的元胞数组,tf是一个大小相同的逻辑数组。

详见: isfolder, 存在, 斯达, is_absolute_filename, is_rooted_rerelative_filename.

 
: tf = isdir (f)

不建议使用此函数。使用isfolder文件_in_loadpath相反

如果返回truef是目录,否则为false。

兼容性说明:MATLAB相同名称的函数也将搜索f在加载路径目录中。要模仿这种行为,请使用

tf= ! isempty(文件_in_loadpath(f))

详见: isfolder, 文件_in_loadpath, 存在, 斯达, is_absolute_filename, is_rooted_rerelative_filename.

 
: tf = isfolder (f)

如果返回truef是目录,否则为false。

如果f是串的元胞数组,tf是一个大小相同的逻辑数组。

详见: isfile, 存在, 斯达, is_absolute_filename, is_rooted_rerelative_filename.

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

返回目录中文件的名称目录作为一个环的元胞数组。

如果发生错误,请在中返回一个空元胞数组文件夹如果成功,犯错误为0并且消息是空字符串。否则,犯错误为非零并且消息包含系统相关错误消息。

详见: ls, 目录, 地球仪, 什么.

 
: cstr = glob (pattern)

给定中的模式字符串数组(作为字符数组或元胞数组)图案,返回一个与其中任何一个匹配的文件名的元胞数组,如果没有匹配的模式,则返回一个空元胞数组。

模式字符串被解释为文件名全局模式(正如Unix shell所使用的那样)。

在一个模式内

*

匹配包括空字符串在内的任何字符串,

?

匹配任何单个字符,以及

[…]

匹配任何包含的字符。

在查找格式化文件名之前,将对每个模式执行平铺展开。例如

ls⇒      file1 file2 file3 myfile1 myfile1bglob(“*file1”)⇒      {[1,1]=file1[2,1]=myfile1}glob(“myfile?”)⇒      {[1,1]=myfile1}glob(“文件[12]”)⇒      {[1,1]=文件1[2,1]=文件2}

注意:在Windows上,不支持包含非ASCII字符的模式。

详见: ls, 目录, readdir, 什么.

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

返回的绝对名称文件如果可以在中找到路径.

的值路径应该是一个用冒号分隔的目录列表,格式如所述路径。如果找不到文件,则返回一个空字符字符串。例如:

file_in_path(EXEC_path,“sh”)⇒ “/bin/sh

如果第二个参数是字符串的元胞数组,则在路径的每个目录中搜索元胞数组的元素,并返回匹配的第一个。

如果第三个可选参数全部的返回一个cellarray,其中包含路径中具有相同名称的所有文件的列表。如果未找到任何文件,则返回一个空的元胞数组。

详见: 文件_in_loadpath, 目录_路径, 路径.

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

返回用于分隔目录名的系统相关字符。

如果全部的如果给定,该函数以字符串的形式返回所有有效的文件分隔符。文件分隔符的列表取决于系统。它是/(正斜杠)在UNIX或Mac OS X下, ‘/\(前斜杠和后斜杠)。

详见: pathsep.

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

返回的目录、名称和扩展组件filename.

输入filename是一个经过解析的字符串。没有尝试检查指定的文件名或目录是否实际存在。

详见: 完整文件, filesep.

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

从不同的部分构建完整的文件名。

该函数智能地连接任意数量的路径组件。返回值是每个组件与恰好一个文件分离器的连接,或者路径的每个部分与最多一个前导和/或尾随文件分离器之间的连接。

输入参数可能是字符串或数组字符串。任何作为数组字符串的输入参数都必须包含一个字符串,或者大小必须相等。在这种情况下,函数返回一个与输入数组字符串具有相同维度的文件路径的数组字符串,例如:

完整文件(“/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/用户名/data/f3.csv}

在Windows系统上,虽然正斜杠文件分隔符确实有效,但它们会被反斜杠所取代。此外,为了获得有效的文件路径,驱动器号中去掉了主要的文件分隔符。

笔记完整文件不对生成的完整文件名执行任何验证。

详见: 文件部件, filesep.

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

在上执行波浪号扩展一串.

如果一串以波浪号字符开头,(~),第一个斜杠之前的所有字符(或所有字符,如果没有斜杠)都被视为可能的用户名,并且波浪号和斜杠之前的字符被名称用户的主目录替换。如果波浪号后面紧跟斜杠,则波浪号将被运行Octave的用户的主目录所替代。

如果输入是字符串的元胞数组cellstr则对每个字符串元素执行波浪形扩展。

示例:

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

返回文件的规范名称filename.

如果文件不存在,则返回空字符串(“”)。没有波浪形扩展filename执行。

详见: 生成绝对文件名, is_absolute_filename, is_rooted_rerelative_filename, is_same_file, 波浪形展开(_E).

 
: abs_fname = make_absolute_filename (file)

返回的全名文件从文件系统的根开始。

不检查是否存在文件。没有波浪号扩展文件执行。

详见: 规范化文件名, is_absolute_filename, is_rooted_rerelative_filename, isfolder, 波浪形展开(_E).

 
: tf = is_absolute_filename (file)

如果返回true文件是一个绝对的文件名。

详见: is_rooted_rerelative_filename, 生成绝对文件名, isfolder.

 
: same = is_same_file (filepath1, filepath2)

如果返回true文件路径1文件路径2详见同一文件。

如果有文件路径1文件路径2是字符串的元胞数组,返回相同大小的一个数组,其中包含上面描述的元胞数组中每个成员的值。另一个参数也可以是字符串的cellarray(大小相同)或字符串。

编程说明:根据操作系统和文件系统的不同,同一个文件或文件夹可以用不同的路径引用。特别是,Windows平台上的路径可能因情况而异(文件1vs。文件1),文件分隔符(\/),以及格式(A~spaces.txt(8.3惯例)与。带有spaces.txt的文件名). 如果中的路径文件路径1文件路径2实际引用相同的文件或文件夹,否则为false。

请注意,与字符串比较函数,此函数要求文件路径1文件路径2存在,以及指向相同的位置,以便变为真。

详见: 规范化文件名, 字符串比较函数.

 
: tf = is_rooted_relative_filename (file)

如果返回true文件是根相对文件名。

详见: is_absolute_filename, 生成绝对文件名, isfolder.

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

查询或设置回收已删除文件的首参数。

当启用回收时,会永久擦除文件的命令会将文件移动到临时位置(如符号为Trash的目录)。

编程说明:此函数用于MATLAB兼容性,但Octave中没有实现回收。为了避免意外的数据丢失,如果尝试启用文件回收,将引发错误。

详见: 删去, rmdir.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号