文件是否存在linux
① linux中怎麼查看文件是否存在
兩個方式:find命令或者shell腳本。
1、find命令
find是linux下用於查找文件的通用方法。
find語法: find [指定查找目錄] [查找規則] [查找完後執行的action]
例如:find /tmp -name wa* -type l ,是在/tmp下查找名為wa開頭且類型為符號鏈接的文件。找到就表示存在。
2、shell腳本
在進行文件的自動處理中常常需要自動判別,下面的腳本判斷test.log是否存在,存在則顯示文件存在,否則顯示文件不存在。
例子:編輯一個腳本判斷文件是否存在
vi t.sh
#!/bin/bash
if [ -e /temp/test.log ];then //這里是判斷語句,-e表示進行比較結果為真則存在
echo "文件存在"
else
echo "文件不存在"
fi
保存退出
執行:
sh t.sh
② linux shell 判斷文件是否存在 存在就刪除
1、linux shell中判斷文件是否存在,可以使用test命令的-a參數。藉助於if結構進行判斷即可。
2、以~/t/thello.py為例,檢測這個文件,如果存在將其刪除,示例代碼如下:
if[[-a~/t/hello.py]];then
echo"存在文件";
rm-f~/t/hello.py
fi;
3、測試效果如下圖所示
③ linux shell 如何判斷一個文件是否存在
了解你的意思,首先,test命令是判斷某一個特定的文件相關信息,也就是當你使用test這個命令的時候,你是清楚它叫什麼名字的(只是你不知道它的相關信息)。如果你要判斷比如你說的以hbc*開頭的一類文件,最好就是使用ls命令或者find命令來作。你可以參考一下,下面的小測試。
mike
>>>
ls
-d
???
12-04-20
23:15
acp/
apc/
scl
tmp/
xmy/
mike
>>>
test
-d
x??
12-04-20
23:15
mike
>>>
echo
$?
12-04-20
23:16
0
mike
>>>
test
-d
x*
12-04-20
23:16
test:
too
many
arguments
使用find命令能很好查找已hbc開頭的文件或者目錄,但是它不能判斷有沒有這樣的文件,因為你不能通過find的命令執行狀態來判斷是否有這樣的文件,但是可以把find的輸出導向到一個文件,從而對文件進行判斷。如下:
mike
>>>
find
./
-type
d
-name
"FUK*"
-print
12-04-20
23:24
mike
>>>
echo
$?
12-04-20
23:24
0
④ linux makefile 判斷文件存在與否
makefile判斷文件存在如下的兩種方法:
1. 調用shell的函數進行判斷
exist = $(shell if [ -f $(FILE) ]; then echo "exist"; else echo "notexist"; fi;)
ifeq (exist, "exist")
#do something here
endif當然,這個方法很土,但是能夠工作!! 2. 使用makefile的函數進行判斷ifeq ($(FILE), $(wildcard $(FILE)))
#do something here
endif $(wildcard $(FILE))的意思是當前路徑下的文件名匹配FILE的文件展開。假設當前路徑下存在a.c 和 b.c,那麼執行src=$(wildcard *.c)src的值就為a.c b.c;如果不使用通配符,比如src=$(wildcard c.c);那麼就是要展開當前路徑下,文件名為c.c的文件,因為當前路徑下文件不存在,因此src為空字元串。
⑤ linux shell 判斷文件是否存在
介紹了linux shell 中判斷文件、目錄是否存在的方法,分享給大家
-e filename 如果 filename存在,則為真
-d filename 如果 filename為目錄,則為真
-f filename 如果 filename為常規文件,則為真
-L filename 如果 filename為符號鏈接,則為真
-r filename 如果 filename可讀,則為真
-w filename 如果 filename可寫,則為真
-x filename 如果 filename可執行,則為真
-s filename 如果文件長度不為0,則為真
-h filename 如果文件是軟鏈接,則為真