Provided by: manpages-zh_1.5.2-1.1_all bug

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...?
              這個子命令返回或設置與一個檔案相關聯的特定於平台的值。第一種形式返回特定於平台的標
              誌(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 參照一個根目錄,則返回根目錄。例如,
                     file dirname c:/
              返回 c:/.

              注意波浪線替換只在必要的時候進行用以補全(complete)命令。例如,
                     file dirname ~/src/foo.c
              返回 ~/src,而
                     file dirname ~
              返回 /home (or something similar).

       file executable name
              如果檔案對當前使用者是可執行的則返回 1,否則返回0file exists name
              如果檔案   name    存在並且當前的使用者對找到(lead    to)它(所途徑)的目錄有查找的權
              利(privilege)則返回1,否則返回 0file extension name
              返回在   name  最後那個元素的最後一個點號之後並包括點號的所有在  name中字符。如果在
              name 的最後的那個元素中沒有點號則返回空串。

       file isdirectory name
              如果檔案 name  是一個目錄則返回 1,否則返回 0file isfile name
              如果檔案 name  是一個普通檔案則返回 1,否則返回 0file join name ?name ...?
              接受一個或多個檔名並使用對當前平台正確的路徑分隔符來組合它們。如果特定的 name是相對
              的,則它會被連接到前面的檔名參數上。否則,丟棄所有以前的參數,從當前的參數開始進行
              連接。例如
                     file join a b /foo bar
              返回 /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,否則返回 0file pathtype name
              返回 absoluterelativevolumerelative 中的一個。如果 name  參照一個在指定卷上的指
              定檔案,路徑類型將是 absolute。如果 name 參照一個相對當前工作目錄的一個檔案,則路徑
              類型將是 relative。如果 name 參照在指定卷上的相對於當前工作目錄的一個檔案,或者在當
              前工作卷上的指定檔案,則路徑類型是 volumerelativefile readable name
              如果檔案 name  對當前使用者是可讀的則返回 1,否則返回0file 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 的最後的組成部分不包含點號,則返回 namefile size name
              返回給出檔案  name 的大小的以字節為單位的一個十進制字符串。如果檔案不存在或它的大小
              不可查詢則生成一個錯誤。

       file split name
              返回一個列表,它的元素是在 name 中的路徑的組成部分。列表的第一個元素將與  name 有相
              同的路徑類型。所有其他元素將是相對的。除了需要確保一個元素是相對的而無歧義之外,丟
              棄路徑分隔符。例如,在 Unix 下
                     file split /foo/~bar/baz
              返回 /  foo  ./~bar  baz   來確保以後的命令在第三個組成部分上不進行波浪線替換。

       file stat  name varNamename 上調用 stat  核心調用,並且使用由 varName  給出的變量來持有從核心調用返回的
              信息。VarName                 被作為一個數組變量來對待,並且給這個變量設置下列元素:
              atimectimedevgidinomodemtimenlinksizetypeuid。除了 type之外的每
              個元素都是一個十進制字符串,它們的值來自從  stat 返回的結構中相應的字段。這些值的意
              義詳見 stat 的手冊條目。type  元素給出的檔案類型與命令 file type   返回的有相同的形
              式。這個命令返回一個空串。

       file tail name
              返回在最後一個目錄分隔符之後的在   name中的所有字符。如果   name   不包含分隔符則返
              回namefile type name
              返回給出檔案   name   的類型的一個字符串,它將是filedirectorycharacterSpecialblockSpecialfifolink、或 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 手冊頁翻譯計劃》:

       http://cmpp.linuxforum.net