在linux中,咱們常常會跟文件目錄打交道,這就涉及到判斷這個文件或目錄是否是空、是否可寫等狀況linux
[root@lijie-01 ~]# cat file1.sh #!/bin/bash f=/root/lijie.txt if [ -f $f ] then echo $f exist else touch $f fi [root@lijie-01 ~]#
而後咱們來查看執行過程
bash
[root@lijie-01 ~]# cat !$ cat file2.sh #!/bin/bash f=/root/lijie.txt if [ -d $f ] then echo $f exist else touch $f //注意touch便可建立文件也可建立目錄,若是文件或目錄存在,touch就會修改文件或目錄的三個time: mtime ctime atime fi [root@lijie-01 ~]#
查看執行過程
code
[root@lijie-01 ~]# cat !$ cat file2.sh #!/bin/bash f=/root/lijie.txt if [ -r $f ] then echo $f readable fi [root@lijie-01 ~]#
執行過程以下
圖片
[root@lijie-01 ~]# cat file2.sh #!/bin/bash f=/root/lijie.txt if [ -w $f ] then echo $f writeable fi [root@lijie-01 ~]#
執行過程以下
it
[root@lijie-01 ~]# ll lijie.txt -rw-r--r--. 1 root root 0 4月 19 06:14 lijie.txt [root@lijie-01 ~]# cat file2.sh #!/bin/bash f=/root/lijie.txt if [ -x $f ] then echo $f exeable fi [root@lijie-01 ~]#
執行過程以下
上圖中,因爲咱們沒有給這個文件執行權限,也沒有設置else語句,所以沒有反饋任何結果
實際上,判斷一個文件是否可讀可寫可執行,是基於當前用戶來判斷的,如下代碼塊爲經常使用方法
判斷一個文件是否存在,若是存在則刪除這個文件file
#!/bin/bash f=/root/lijie.txt # [ -f $f] && rm -f $f //這種方式的效果等同於下面四行的效果 if [ -f $f ] then rm -f $f fi
判斷一個文件是否存在,若是不存在則建立這個文件權限
#!/bin/bash f=/root/lijie.txt # [ ! -f $f ] || touch $f //這種方式的效果等同於下面四行的效果 if [ ! -f $f ] then touch $f fi