总览 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...?
这个子命令返回或设置与一个文件相关联的特定于平台的值。第一种形式返回特定于平台的标志(flag)和它们的值的一个列表。第二种形式返回指定选项的值。第三种形式设置一个或多个值。这些值是:
在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
第一中形式在路径名
target 底下做文件或路径
source的一个复件。如果
target
是一个现存的目录,则使用第二种形式。第二种形式在targetDir
中做列出的每个 source
文件的一个复件。如果指定一个目录作为一个
source,则这个目录的内容将被递归的复制进
targetDir 中。除非指定
-force
选项否则现存文件将不被覆写。即使指定了
-force
,尝试覆写一个非空目录,用一个文件覆写一个目录,或者用一个目录覆写一个文件将导致错误。参数按指定的次序被处理,如果有错误的话,在第一个错误处停止(halt)。一个
--
标记选项的结束;在
-- 之后的参数即使以
-
开始将仍被作为一个
source 来对待。
- file delete
?-force? ?--? pathname ?pathname ...
?
- 删除由每个 pathname
参数所指定的文件或目录。只有指定
-force选项才删除非空目录。尝试删除一个不存在文件将导致不作为一个错误来考虑。即使没有指定
-force
项,尝试删除一个只读文件将导致文件被删除。参数按指定的次序被处理,如果有错误的话,在第一个错误处停止(halt)。一个
--
标记选项的结束;在
-- 之后的参数即使以
-
开始将仍被作为一个
pathname来对待。
- file dirname
name
- 返回一个名字,由在
name
中除了最后一个之外的所有路径组成部分(component)组成。如果
name
是一个相对的文件名并且只包含一个路径元素(element),则返回“.”
(在 Macintosh
上为“:”)。如果
name
参照一个根目录,则返回根目录。例如,
返回
c:/.
注意波浪线替换只在必要的时候进行用以补全(complete)命令。例如,
返回
~/src,而
返回
/home (or something similar).
- 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是相对的,则它会被连接到前面的文件名参数上。否则,丢弃所有以前的参数,从当前的参数开始进行连接。例如
返回
/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
第一种形式接受由路径名source
指定的文件或目录并且把它重命名成
target,如果路径名
target指定了在不同目录下的一个名字,则移动这个文件。如果
target
是一个现存的目录,则使用第二种形式。第二中形式移动每个
source 文件或目录到目录
targetDir
中。除非指定了-force选项否则不覆写现存的文件。尝试覆写一个非空目录,用一个文件覆写一个目录,或者用一个目录覆写一个文件将导致错误。参数按指定的次序被处理,如果有错误的话,在第一个错误处停止(halt)。一个
--
标记选项的结束;在
-- 之后的参数即使以
-
开始将仍被作为一个
source 来对待。
- file rootname
name
- 返回 name
的最后一个组成部分的最后一个“.”之前但不包括这个“.”的
name中的所有字符。如果
name
的最后的组成部分不包含点号,则返回
name。
- file size
name
- 返回给出文件 name
的大小的以字节为单位的一个十进制字符串。如果文件不存在或它的大小不可查询则生成一个错误。
- file split
name
- 返回一个列表,它的元素是在
name
中的路径的组成部分。列表的第一个元素将与
name
有相同的路径类型。所有其他元素将是相对的。除了需要确保一个元素是相对的而无歧义之外,丢弃路径分隔符。例如,在
Unix 下
返回
/ 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
- 这些命令总是使用真实用户和组标识而不使用有效用户和组标识。
关键字 KEYWORDS
attributes, copy files, delete files, directory, file, move files,
name, rename files, stat
《中国 Linux 论坛 man
手册页翻译计划》:
http://cmpp.linuxforum.net
跋
本页面中文版由中文
man 手册页计划提供。
中文 man
手册页计划:https://github.com/man-pages-zh/manpages-zh