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