Provided by: manpages-zh_1.6.3.3-2_all bug

NAME

       filename - Tcl 命令支持的文件名转换
_________________________________________________________________

INTRODUCTION

       所有接受文件名作为参数的                   Tcl                   命令和                  C
       过程希望文件名是依赖于当前平台的三种形式之一。在每种平台上,Tcl
       都支持这种平台上的标准形式的文件名。额外的,在所有平台上,Tcl         支持一种        Unix
       式的语法,提供了一种方便的方式来构造简单的文件名。但是,打算被移植的脚本不要假定特定形式的文件名。可移植的脚本必须使用
       file splitfile join 命令来操纵文件名(详见file 的手册条目)。

路径类型 PATH TYPES

       基于用来指定文件的路径的起点,文件名被组织成三种一般类型:
       绝对,相对,相对-卷。绝对名字是完全限定的(qualified),给出的到文件的路径相对于一个特定的卷和在这个卷上的根目录。相对名字是未限定的,给出的到文件的路径相对于当前的工作目录。相对-卷名字是部分限定的,给出的路径要么相对在当前卷上的根目录,要么相对于在指定卷上的当前目录。使用
       file pathtype 命令来确定一个给定路径的类型。

路径语法 PATH SYNTAX

       本地名字的规则依赖于在 Tcl 数组元素 tcl_platform(platform) 中报告的值:

       mac       在     Apple     Macintosh     系统上,Tcl     支持两种形式的路径名。常规    Mac
                 式样的名字使用分号作为路径分隔符。路径可以是相对的或绝对的,并且文件名中可以包含除了分号之外的任何字符。一个前导的分号导致路径的剩余部分被解释成相对当前目录。如果一个路径包含一个不在开始处的分号,则路径被解释成一个绝对路径。在路径中任何地方的两个或多个分号的序列被用做构造相对路径,这里的
                 :: 参照当前目录的父目录,::: 参照父目录的父目录,以此类推。

                 除了           Macintosh           式样的名字,Tcl          还支持          Unix
                 式名字的一个子集。如果一个路径不包含分号,则把它按一个                      Unix
                 路径来解释。使用斜杠作为路径分隔符。文件名       .      参照当前目录,而      ..
                 参照当前目录的父目录。但是,象 //..的一些名字没有映射,并被作为  Macintosh
                 名字解释。一般的,生成文件名的命令返回                                 Macintosh
                 式样的名字,而接收文件名的命令接受 Macintosh 和 Unix 式样的两种名字。

                 下列例子展示不同形式的路径名:

                 :              到当前文件夹(folder)的相对路径。

                 MyFile         到在当前文件夹中的叫 MyFile的一个文件的相对路径。

                 MyDisk:MyFile  到在叫 MyDisk 的设备上的一个叫 MyFile 的文件的绝对路径。.

                 :MyDir:MyFile  到在当前文件夹中的一个叫      MyDir的文件夹中的一个叫      MyFile
                                的文件的相对路径。

                 ::MyFile       到在当前文件夹的上层文件夹中的一个叫 MyFile 的文件的相对路径。

                 :::MyFile      到在当前文件夹的上两层文件夹中的一个叫 MyFile 的文件的相对路径。

                 /MyDisk/MyFile 在叫 MyDisk 的设备上的一个叫 MyFile 的文件的绝对路径。

                 ../MyFile      到在当前文件夹的上层文件夹中的一个叫 MyFile 的文件的相对路径。

       unix      在                                Unix                               平台上,Tcl
                 使用的路径名的组成部分由斜杠来分隔。路径名可以是相对的或绝对的,并且文件名可以包含除斜杠之外的任何字符。文件名
                 ...
                 是特殊的并且分别参照当前目录和当前目录的父目录。多个毗接的(adjacent)的斜杠被解释为一个单一的分隔符。下列例子展示不同形式的路径名:

                 /              到根目录的绝对路径。

                 /etc/passwd    到在根目录中的 etc 目录中的一个叫 passwd 的文件的绝对路径。

                 .              到当前目录的相对路径。

                 foo            Relative path to the file foo in the current directory.

                 foo/bar        到在当前目录中的一个叫 foo 的文件的相对路径。

                 ../foo         到在当前目录中的目录 foo 目录中的一个叫 bar 的文件的相对路径。

       windows   在  Microsoft  Windows  平台上,Tcl  支持相对驱动器和 UNC 式样的名字两者。/\
                 二者都可用在两种类型的名字中做分隔符。相对驱动器的名字由可选的驱动器指定符(specifier)和随后的绝对或相对的路径组成。UNC
                 路径依从  \\servername\sharename\path\file 的一般形式。在两种形式中,文件名 ... 是特殊的并且分别参照当前目录和当前目录的父目录。下列例子展示不同形式的路径名:

                 \\Host\share/file
                                到在主机   Host   上的导出点   share   的根目录中的一个叫    file
                                的文件的绝对 UNC 路径。

                 c:foo          到在驱动器 c 上的当前目录中的一个叫 foo 的文件的相对卷的路径。

                 c:/foo         到在当前卷上的当前目录中 foo 目录中一个叫 bar 的文件的绝对路径。

                 foo\bar        到在当前卷上的当前目录中 foo 目录中一个叫 bar 的文件的相对路径。

                 \foo           到在当前卷的根目录中的一个叫 foo 的文件的相对卷的路径。

波浪线替换 TILDE SUBSTITUTION

       除了上述文件名规则之外,Tcl                           还支持                           csh
       式样的波浪线替换。如果一个文件名以一个波浪线开始,则按文件名的第一个元素被给定用户的主目录的位置所替换来解释。如果波浪线之后立即跟随着一个分隔符,则用
       $HOME
       环境变量来替换。否则在波浪线和下一个分隔符之间的的字符被接受为一个用户名,它被用来检索用于替换的用户的主目录。

       Macintosh                                    和                                    Windows
       不支持对波浪线跟随一个用户名的波浪线替换。在这些平台上,使用波浪线并跟随一个用户名的尝试将生成一个错误。有一个波浪线而没有用户名的文件名将象
       Unix 一样使用 $HOME 环境变量来替换。

移植要点 PORTABILITY ISSUES

       注意所有的文件系统都是大小写敏感的,所以脚本应避免依赖于在文件名中的字符大小写的代码。额外的,在不同设备上允许的字符集可能不同,所以脚本脚本应选择不包含特殊字符如
       <>:"/\|      的文件名。最安全的方式是只使用由字母组成的用户名。还有      Windows       3.1
       只支持有不多于8个字符的根和不多于3个字符的扩展的文件名。

关键字 KEYWORDS

       current  directory,  absolute  file  name,  relative file name, volume-relative file name,
       portability

参见 SEE ALSO

       file(n), glob(n)

[中文版维护人]

       寒蝉退士

[中文版最新更新]

       2001/08/28

《中国 Linux 论坛 man 手册页翻译计划》:

       http://cmpp.linuxforum.net

       本页面中文版由中文 man 手册页计划提供。
       中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh