file(3tcl) | Tcl Built-In Commands | file(3tcl) |
NAME¶
file - 操纵文件名和属性
总览 SYNOPSIS¶
file option name ?arg arg ...?
描述 DESCRIPTION¶
这个命令提供在一个文件名或属性上的一些操作。Name 是一个文件的名字;如果它以波浪线(~)开始,则在执行命令之前进行波浪线替换(详情参见filename 命令的手册条目)。Option 指示对文件名做什么处理。接受 option 的任何唯一的缩写。有效的选项是:
- file atime name ?time?
- 返回一个十进制字符串,给出文件 name 上次被访问的时间。如果指定了time,它是这个文件要设置成的访问时间。这个时间是用标准的 POSIX 方式(fashion)度量的,即从一个固定的开始时间至今的秒数(通常是1970年1月1日)。如果文件不存在或它的访问时间不可查询或设置则生成一个错误。在 Windows 上,FAT 文件系统不支持访问时间。
- file attributes name
-
file attributes name ?option?
file attributes name ?option value option value...?
在Unix 上,-group 得到或设置这个文件的组名字。给这个命令一个组ID,而它返回一个组名字。-owner 得到或设置这个文件的属主的名字。这个命令返回属主的名字,而在设置属主的时候要传递给它数值的 ID。-permissions 设置或查询 chmod(1) 所使用的八进制代码。这个命令还有限的支持使用 chmod(1)的符号属性来做设置,形式是 [ugo]?[[+-=][rwxst],[...]],这里使用逗号来分隔多个符号属性(例如: u+s,go-rw 为用户添加粘住位(sticky),为组和其他删除读和写的许可权)。还支持一个简化的 ls式样的字符串,形式是 rwxrwxrwx (必须是 9 个字符)(例如: rwxr-xr-t 等价于01755)。
在 Windows 上,-archive 给出值或设置或清除这个文件的归档属性。-hidden 给出值或设置或清除这个文件的隐藏属性。-longname将把每个路径元素扩展成长版本。不能设置这个属性。-readonly 给出值或设置或清除这个文件的只读属性。-shortname 给出一个字符串,在这里每个路径元素被替换成它的短(8.3)版本的文件名。不能设置这个属性。-system 给出值或设置或清除这个文件的系统属性。
在 Macintosh 上,-creator给出或设置这个文件的寻找器(Finder)建立者类型。-hidden给出值或设置或清除这个文件的隐藏属性。-readonly 给出值或设置或清除这个文件的只读属性。注意如果打开了文件共享则目录只能被锁定。-type 给出或设置这个文件的寻找器文件类型。
- file channels ?pattern?
- 如果没有指定 pattern,则返回所有在这个解释器中注册的打开通道的一个列表。如果指定了 pattern,则只返回匹配pattern 的名字。确定匹配使用与 string match 相同的规则。
- file copy ?-force? ?--? source target
-
file copy ?-force? ?--? source ?source ...? targetDir
- file delete ?-force? ?--? pathname ?pathname ... ?
- 删除由每个 pathname 参数所指定的文件或目录。只有指定 -force选项才删除非空目录。尝试删除一个不存在文件将导致不作为一个错误来考虑。即使没有指定 -force 项,尝试删除一个只读文件将导致文件被删除。参数按指定的次序被处理,如果有错误的话,在第一个错误处停止(halt)。一个 -- 标记选项的结束;在 -- 之后的参数即使以 - 开始将仍被作为一个 pathname来对待。
- file dirname name
- 返回一个名字,由在 name 中除了最后一个之外的所有路径组成部分(component)组成。如果 name 是一个相对的文件名并且只包含一个路径元素(element),则返回“.” (在 Macintosh 上为“:”)。如果 name 参照一个根目录,则返回根目录。例如,
file dirname c:/
注意波浪线替换只在必要的时候进行用以补全(complete)命令。例如,
file dirname ~/src/foo.c
file dirname ~
- file executable name
- 如果文件对当前用户是可执行的则返回 1,否则返回0。
- file exists name
- 如果文件 name 存在并且当前的用户对找到(lead to)它(所途径)的目录有查找的权利(privilege)则返回1,否则返回 0。
- file extension name
- 返回在 name 最后那个元素的最后一个点号之后并包括点号的所有在 name中字符。如果在 name 的最后的那个元素中没有点号则返回空串。
- file isdirectory name
- 如果文件 name 是一个目录则返回 1,否则返回 0。
- file isfile name
- 如果文件 name 是一个普通文件则返回 1,否则返回 0。
- file join name ?name ...?
- 接受一个或多个文件名并使用对当前平台正确的路径分隔符来组合它们。如果特定的 name是相对的,则它会被连接到前面的文件名参数上。否则,丢弃所有以前的参数,从当前的参数开始进行连接。例如
file join a b /foo bar
注意任何名字都可以包含分隔符,并且结果总是依从当前平台的规矩: 对 Unix 和 Windows 是 /,对 Macintosh 是 :。
- file lstat name varName
- 除了使用 lstat 调用而不使用 stat 之外,与 stat 选项(见后)相同。这意味着如果 name 参照一个符号连接,在 varName 中返回的信息是针对这个连接而不是它所引用的那个文件。在不支持符号连接的系统上这个选项的行为与 stat选项完全一致。
- file mkdir dir ?dir ...?
- 建立每个指定的目录。对于每个指定的路径名 dir ,象 dir 自身一样,这个命令将建立所有不存在的父目录。如果指定了一个现存的目录,不做动作并不返回错误。尝试用一个目录覆写一个现存的文件将导致一个错误。参数按指定的次序被处理,如果有错误的话,在第一个错误处停止(halt)。
- file mtime name ?time?
- 返回一个十进制字符串,给出文件 name上次被修改的时间。如果指定了time ,它是这个文件要设置成的修改时间。(等价与 Unix 的 touch)。这个时间是用标准的 POSIX 方式(fashion)度量的,即从一个固定的开始时间至今的秒数(通常是1970年1月1日)。如果文件不存在或它的修改时间不可查询或设置则生成一个错误。
- file nativename name
- 返回文件的特定于平台的名字。如果这个文件名需要传递给特定于系统的调用,比如对在 Windows 下的 exec 或在 Macintosh 上的 AppleScript 将会有用。
- file owned name
- 如果文件 name 由当前用户所有则返回 1,否则返回 0。
- file pathtype name
- 返回 absolute、relative、volumerelative 中的一个。如果 name 参照一个在指定卷上的指定文件,路径类型将是 absolute。如果 name 参照一个相对当前工作目录的一个文件,则路径类型将是 relative。如果 name 参照在指定卷上的相对于当前工作目录的一个文件,或者在当前工作卷上的指定文件,则路径类型是 volumerelative。
- file readable name
- 如果文件 name 对当前用户是可读的则返回 1,否则返回0。
- file readlink name
- 返回由 name 给出的符号连接的值(比如,它指向的文件的名字)。如果 name 不是符号连接或它的值不可读,则返回一个错误。在不支持符号连接的系统上这个选项未定义。
- file rename ?-force? ?--? source target
- file rename ?-force? ?--? source ?source ...? targetDir
- file rootname name
- 返回 name 的最后一个组成部分的最后一个“.”之前但不包括这个“.”的 name中的所有字符。如果 name 的最后的组成部分不包含点号,则返回 name。
- file size name
- 返回给出文件 name 的大小的以字节为单位的一个十进制字符串。如果文件不存在或它的大小不可查询则生成一个错误。
- file split name
- 返回一个列表,它的元素是在 name 中的路径的组成部分。列表的第一个元素将与 name 有相同的路径类型。所有其他元素将是相对的。除了需要确保一个元素是相对的而无歧义之外,丢弃路径分隔符。例如,在 Unix 下
file split /foo/~bar/baz
- file stat name varName
- 在 name 上调用 stat 内核调用,并且使用由 varName 给出的变量来持有从内核调用返回的信息。VarName 被作为一个数组变量来对待,并且给这个变量设置下列元素: atime、ctime、dev、gid、ino、mode、mtime、nlink、size、type、uid。除了 type之外的每个元素都是一个十进制字符串,它们的值来自从 stat 返回的结构中相应的字段。这些值的意义详见 stat 的手册条目。type 元素给出的文件类型与命令 file type 返回的有相同的形式。这个命令返回一个空串。
- file tail name
- 返回在最后一个目录分隔符之后的在 name中的所有字符。如果 name 不包含分隔符则返回name。
- file type name
- 返回给出文件 name 的类型的一个字符串,它将是file、directory、characterSpecial、 blockSpecial、fifo、link、或 socket 中的一个。
- file volume
- 返回一个适当的 Tcl 列表,给出到挂装在系统上的卷的绝对路径。在Macintosh上,将是挂装驱动器的一个列表,包括本地的和网络的二者。N.B.(?)如果两个驱动器有相同的名字,它们都将出现在卷列表上,但当前没有办法从Tcl 来访问除了第一个之外的任何驱动器。在 UNIX 上,命令将总是返回 "/",因为所有文件系统都是本地挂装的。在 Windows 上,它将返回可获得的本地驱动器的一个列表(比如,{a:/ c:/})。
- file writable name
- 如果文件 name 对当前用户是可写的则返回 1,否则返回 0。
移植要点 PORTABILITY ISSUES¶
- Unix
- 这些命令总是使用真实用户和组标识而不使用有效用户和组标识。
参见 SEE ALSO¶
filename
关键字 KEYWORDS¶
attributes, copy files, delete files, directory, file, move files, name, rename files, stat
[中文版维护人]¶
寒蝉退士
[中文版最新更新]¶
2001/06/21
《中国 Linux 论坛 man 手册页翻译计划》:¶
8.3 | Tcl |