Manpages

______________________________________________________________________________

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