總覽 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