linux檔案測試語句

2022-06-08 14:27:11 字數 4300 閱讀 4098

1、linux系統中檔案測試語句用於判斷檔案是否存在、是檔案或者目錄、或者許可權判斷

linux系統中 echo $? 用於判斷上一句是否成功執行,成功返回0,不成功返回其他數字,

簡單示例: 

[root@linuxprobe test]# ls

[root@linuxprobe test]# mkdir test ## 成功執行

[root@linuxprobe test]# echo $? ## 返回0

0[root@linuxprobe test]# mkdir test ##未成功執行

mkdir: cannot create directory 『test』: file exists

[root@linuxprobe test]# echo $? ## 返回1

1

2、格式 

[ 條件表示式 ] ,條件表示式的兩邊一定要有空格

3、簡單測試  -e判斷檔案或者目錄是否存在 

[root@linuxprobe test]# ls

a.txt test

[root@linuxprobe test]# [ -e a.txt ]

[root@linuxprobe test]# echo $? ## 存在返回0

0[root@linuxprobe test]# [ -e b.txt ] ## 不存在返回1

[root@linuxprobe test]# echo $?

1[root@linuxprobe test]# [ -e test ] ##同上

[root@linuxprobe test]# echo $?

0[root@linuxprobe test]# [ -e test2 ]

[root@linuxprobe test]# echo $?

1

4、-f判斷是否為普通檔案, -d 判斷是否為目錄

[root@linuxprobe test]# touch a.txt  ## 普通檔案

[root@linuxprobe test]# mkdir test ##目錄

[root@linuxprobe test]# ls -l

total

0-rw-r--r--. 1 root root 0 oct 14

06:53

a.txt

drwxr-xr-x. 2 root root 6 oct 14

06:53

test

[root@linuxprobe test]# [ -f a.txt ]

[root@linuxprobe test]# echo $? ## 普通檔案返回0

0[root@linuxprobe test]# [ -f test ]

[root@linuxprobe test]# echo $? ##目錄,返回1

1[root@linuxprobe test]# [ -d a.txt ] ## 普通檔案,返回1

[root@linuxprobe test]# echo $?

1[root@linuxprobe test]# [ -d test ] ##目錄,返回0

[root@linuxprobe test]# echo $?

0

5、-r 、-w、-x分別進行許可權判斷

[root@linuxprobe test]# ls

[root@linuxprobe test]# touch a.txt b.txt

[root@linuxprobe test]# chmod

000a.txt

[root@linuxprobe test]# chmod

777b.txt

[root@linuxprobe test]# ll -h ## 檢視許可權

total

0----------. 1 root root 0 oct 14

18:27

a.txt

-rwxrwxrwx. 1 root root 0 oct 14

18:27

b.txt

[root@linuxprobe test]# whoami ##root使用者

root

[root@linuxprobe test]# [ -r a.txt ] ## 對root無效?

[root@linuxprobe test]# echo $?

0[root@linuxprobe test]# [ -w a.txt ] ## 對root無效?

[root@linuxprobe test]# echo $?

0[root@linuxprobe test]# [ -x a.txt ] ## 執行許可權可以

[root@linuxprobe test]# echo $?

1[root@linuxprobe test]# su -linuxprobe ## 切換至普通使用者

[linuxprobe@linuxprobe ~]$ cd ../test/[linuxprobe@linuxprobe test]$ ll -h

total

0----------. 1 root root 0 oct 14

18:27

a.txt

-rwxrwxrwx. 1 root root 0 oct 14

18:27

b.txt

[linuxprobe@linuxprobe test]$ whoami

linuxprobe

[linuxprobe@linuxprobe test]$ [ -r a.txt ] ## 對普通使用者沒有讀的許可權

[linuxprobe@linuxprobe test]$ echo $?

1[linuxprobe@linuxprobe test]$ [ -w a.txt ] ## 同上

[linuxprobe@linuxprobe test]$ echo $?

1[linuxprobe@linuxprobe test]$ [ -x a.txt ] ## 同上

[linuxprobe@linuxprobe test]$ echo $?

1

[linuxprobe@linuxprobe test]$ ls

a.txt b.txt

[linuxprobe@linuxprobe test]$ whoami

linuxprobe

[linuxprobe@linuxprobe test]$ ll -h

total

0----------. 1 root root 0 oct 14

18:27

a.txt

-rwxrwxrwx. 1 root root 0 oct 14

18:27

b.txt

[linuxprobe@linuxprobe test]$ [ -r b.txt ]

[linuxprobe@linuxprobe test]$ echo $?

0[linuxprobe@linuxprobe test]$ [ -w b.txt ]

[linuxprobe@linuxprobe test]$ echo $?

0[linuxprobe@linuxprobe test]$ [ -x b.txt ]

[linuxprobe@linuxprobe test]$ echo $?

0[linuxprobe@linuxprobe test]$ su -root

password:

[root@linuxprobe ~]# cd /home/test/[root@linuxprobe test]# ll -h

total

0----------. 1 root root 0 oct 14

18:27

a.txt

-rwxrwxrwx. 1 root root 0 oct 14

18:27

b.txt

[root@linuxprobe test]# whoami

root

[root@linuxprobe test]# [ -r b.txt ]

[root@linuxprobe test]# echo $?

0[root@linuxprobe test]# [ -w b.txt ]

[root@linuxprobe test]# echo $?

0[root@linuxprobe test]# [ -x b.txt ]

[root@linuxprobe test]# echo $?

0

Linux測試比較語句

測試和比較語句用於if或指令碼命令中 if condition then commands else if conditon then commandsfi或 condition command 如果condition為真則執行command condition command 如果conditio...

測試mysql語句效能 SQL語句效能測試

隨著軟體系統的複雜度提高,軟體系統的效能瓶頸可能出現的地方有很多,可能是 也可能是應用伺服器,可能是前端介面層,也可能是中介軟體,還有,可能是資料庫。而對於資料庫出現瓶頸而言,又要分兩種情況,一種是資料庫架構 設計有問題 另外一種則是提交處理的sql語句有問題。據統計,在資料庫應用系統中,大部分的效...

Mysql執行大檔案sql語句 未測試

如果.sql檔案過大,mysql會直接斷開連線 解決方法 在mysql的配置檔案my.cnf 中加入 一行max allowed packet 100m 該大小 mysql.sql檔案大小 mysqld max allowed packet 20000m wait timeout 20000000 ...