1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
-e file exists
判斷檔案存在
(與 -a 相同但非常不建議使用 -a)
-f file is a regular file (not a directory or device file)
判斷是普通檔案 (非資料夾或裝置檔)
-d file is a directory
判斷是資料夾
-h, -L file is a symbolic link
判斷是軟連結
-b file is a block device
判斷是 block device
-c file is a character device
判斷是 character device
-p file is a pipe
判斷是 pipe
-S file is a socket
判斷是 socket
-s file is not zero size
判斷檔案非零 (> 0)
-t file (descriptor) is associated with a terminal device
判斷是否有連接 terminal 裝置
用
[[ -t 0 ]] 檢查 stdin
或
[[ -t 1 ]] 檢查 stdout
來判斷 script 是否是在一個 terminal 中執行的。
-r file has read permission (for the user running the test)
判斷檔案是否有「讀」的權限 (對執行這個判斷的使用者而言)
-w file has write permission (for the user running the test)
判斷檔案是否有「寫」的權限 (對執行這個判斷的使用者而言)
-x file has execute permission (for the user running the test)
判斷檔案是否有「執行」的權限 (對執行這個判斷的使用者而言)
-g set-group-id (sgid) flag set on file or directory
判斷 sgid 設立
-u set-user-id (suid) flag set on file
判斷 suid 設立
-k sticky bit set
判斷 sticky bit 設立 (限制只有 owner 與 root 可以刪除或移動內容物)
-O you are owner of file
判斷自己是檔案擁有者
-G group-id of file same as yours
判斷檔案 Group id 跟自己相同
-N file modified since it was last read
判斷自從上次讀取後,檔案修改過
-nt file f1 is newer than f2
判斷檔案 f1 比 f2 還要新
-ot file f1 is older than f2
判斷檔案 f1 比 f2 還要舊
-ef files f1 and f2 are hard links to the same file
判斷 f1 與 f2 的硬連結為同一個
! "not"
反轉上述條件判斷結果
|