導航:首頁 > 程序命令 > linux判斷文件是否存在命令

linux判斷文件是否存在命令

發布時間:2022-10-03 18:47:02

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中怎麼查看命令是否存在

find命令
find是linux下用於查找文件的通用方法。
find語法:
find
[指定查找目錄]
[查找規則]
[查找完後執行的action]
例如:find
/tmp
-name
wa*
-type
l
,是在/tmp下查找名為wa開頭且類型為符號鏈接的文件。找到就表示存在。

④ 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中怎麼查看命令是否存在

方法有很多,最簡單的方法是,直接輸入你想要查看命令的名字,如果顯示幫助或者有顯示結果證明命令存在,如果顯示command
not
found則說明不存在。
還可以使用which命令。which命令的作用是,在PATH變數指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果,如果不存在則不返回。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
用法示例:
$
which
python

⑥ linux查找文件的命令

查找文件命令是find命令。

⑦ 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 如果文件是軟鏈接,則為真

⑧ Linux grep、egrep使用命令詳解

grep egrep區別
grep 默認不支持擴展 但可以通過-E 選擇來支持擴展正則
egrep 支持擴展正則

關於正則與擴展正則的區別可以看我另一篇shell 正則的介紹
文件處理順序 以行為單位,逐行進行處理
默認只輸出與表達式相匹配的文本行

基本用法
- 格式1:egrep [選擇] '正則表達式' 文件
- 格式2:前置命令 | egrep [選擇] '正則表達式'

• egrep命令工具 (擴展正則命令)

• 常用命令選項

•grep 正則表達式,用來查找過濾文檔的工具符號
grep "root" user //在user文檔中查找有單詞root的行
grep "^root" user //在user文檔中查找以單詞root開頭的行
grep "bash " user //查找空行
grep "^ " user //查找以空格開頭的行
grep "[rot]" user //查找字母r或者o或者t
grep "roo[tn]" user //查找root或者roon
grep "[^rot]" user //查找字母r或者o或者t之外的內容
grep "[a-z]" user //查找小寫字母
grep "[A-Z]" user //查找大寫字母
grep "[a-Z]" user //查找所有字母
grep "[0-9]" user //查找數字

grep "r..t" user //查找以r開頭t結尾中間有2個任意字元的單詞
grep "r. " user //查找以r開頭後面任意字元 相當手通配符
grep "ro*" user //查找以r開頭後面有或沒有字母o的單詞,o可以出現任意次
grep "o{1,2}" user //查找o出現1次到2次的行
grep "o{2,3}" user //查找o出現2次到3次的行
grep "o{2}" user //查找o出現2次的行
grep "o{1,} " user //查找o出現1次以及1次以上
grep "(:0){2}" user //查找:0(數字零)連續出現2次的行
擴展正則
egrep "o+" user //查找o出現1次以及1次以上
egrep "o?" user //查找o出現0次或1次
egrep "o{1,2}" user //查找o出現1次到2次的行
egrep "o{2,3}" user //查找o出現2次到3次的行
egrep "o{2}" user //查找o出現2次的行
egrep "o{1,}" user //查找o出現1次以及1次以上
egrep "(:0){2}" user //查找:0(數字零)連續出現2次的行
egrep "bash|nologin" user //查找bash或者nologin
egrep "the" a //查找單詞the,前後是空格或者特殊符號

案例:
正則表達式匹配練習
1)典型的應用場合:grep、egrep檢索文本行
grep命令不帶-E選項時,支持基本正則匹配模式。比如「word」關鍵詞檢索、「^word」匹配以word開頭的行、「word$」匹配以word結尾的行……等等。
輸出以「r」開頭的用戶記錄:

輸出以「localhost」結尾的行:

若希望在grep檢索式同時組合多個條件,比如輸出以「root」或者以「daemon」開頭的行:

而若若使用grep -E或egrep命令,可支持擴展正則匹配模式,能夠自動識別 |、{} 等擴展正則表達式中的特殊字元,用起來更加方便,比如:

或者

使用grep -E 與 使用egrep命令完全等效,推薦使用後者,特別是涉及到復雜的正則表達式的時候。
2)grep、egrep命令的-q選項
選項 -q 表示 quiet(靜默)的意思,結合此選項可以只做檢索而並不輸出,通常在腳本內用來識別查找的目標是否存在,通過返回狀態 $? 來判斷,這樣可以忽略無關的文本信息,簡化腳本輸出。
比如,檢查/etc/hosts文件內是否存在192.168.4.4的映射記錄,如果存在則顯示「YES」,否則輸出「NO」,一般會執行:

這樣grep的輸出信息和腳本判斷後的提示混雜在一起,用戶不易辨別,所以可以改成以下操作:

是不是清爽多了,從上述結果也可以看到,使用 -q 選項的效果與使用 &> /dev/null的效果類似。
3)基本元字元 ^、$ —— 匹配行首、行尾
輸出注釋的配置行(以#開頭的行):

統計本地用戶中登錄Shell為「/sbin/nologin」的用戶個數:
提示: -m10僅在文件的前10行中過濾,後面的行不再過濾。

結合 -c 選項輸出匹配的行數

使用 -c 選項可輸出匹配行數,這與通過管道再 wc -l的效果是相同的,但是寫法更簡便。比如,統計使用「/bin/bash」作為登錄Shell的正常用戶個數,可執行:

或者

4)基本元字元 . —— 匹配任意單個字元
以/etc/rc.local文件為例,確認文本內容:

輸出/etc/rc.local文件內的空行(用 –v 選項將條件取反):

5)基本元字元 +、?、 —— 目標出現的次數*
還以/etc/rc.local文件為例:

輸出包括 f、ff、ff、……的行,即「f」至少出現一次:

輸出包括init、initial的行,即末尾的「ial」最多出現一次(可能沒有):

輸出包括stu、stuf、stuff、stufff、……的行,即末尾的「f」可出現任意多次,也可以沒有。重復目標只有一個字元時,可以不使用括弧:

輸出所有行,單獨的「.*」可匹配任意行(包括空行):

輸出/etc/passwd文件內「r」開頭且以「nologin」結尾的用戶記錄,即中間可以是任意字元:

6)元字元 {} —— 限定出現的次數范圍
創建一個練慣用的測試文件:

輸出包括ababab的行,即「ab」連續出現3次:

輸出包括abab、ababab、abababab的行,即「ab」連續出現2~4次:

輸出包括ababab、abababab、……的行,即「ab」最少連續出現3次:

7)元字元 [] —— 匹配范圍內的單個字元
還以前面的測試文件bracet.txt為例:

輸出包括abc、abd的行,即前兩個字元為「ab」,第三個字元只要是c、d中的一個就符合條件:

輸出包括大寫字母的行,使用[A-Z]匹配連續范圍:

8)單詞邊界匹配
以文件/etc/rc.local為例:

輸出包括單詞「init」的行,文件中「initialization」不合要求:

或者:

輸出包括以「ll」結尾的單詞的行,使用 > 匹配單詞右邊界:

或者:

9)多個條件的組合
通過dmesg啟動日誌查看藍牙設備、網卡設備相關的信息:

⑨ linux 目錄是否存在命令

#shell判斷文件夾是否存在

#如果文件夾不存在,創建文件夾
if [ ! -d "/myfolder" ]; then
mkdir /myfolder
fi
#shell判斷文件,目錄是否存在或者具有許可權
folder="/var/www/"
file="/var/www/log"
# -x 參數判斷 $folder 是否存在並且是否具有可執行許可權
if [ ! -x "$folder"]; then
mkdir "$folder"
fi
# -d 參數判斷 $folder 是否存在 《Linux就該這么學》 一起學習linux
if [ ! -d "$folder"]; then
mkdir "$folder"
fi
# -f 參數判斷 $file 是否存在
if [ ! -f "$file" ]; then
touch "$file"
fi
# -n 判斷一個變數是否有值
if [ ! -n "$var" ]; then
echo "$var is empty"
exit 0
fi
# 判斷兩個變數是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi

閱讀全文

與linux判斷文件是否存在命令相關的資料

熱點內容
c語言編譯器手機在線 瀏覽:848
戰艦世界什麼伺服器地址 瀏覽:550
windowsphone解壓縮 瀏覽:646
android工程目錄結構 瀏覽:137
pdf文檔是反的 瀏覽:528
javaobject比較 瀏覽:867
安卓如何設置微信屏幕鎖 瀏覽:189
本溪雲伺服器 瀏覽:375
玩機技巧華為app如何了解純凈模式 瀏覽:905
換演算法則數不變 瀏覽:719
java工作流activiti 瀏覽:788
單片機自動門程序 瀏覽:423
java培訓長沙 瀏覽:494
程序員生存現狀 瀏覽:588
光環游戲安裝器在哪個文件夾 瀏覽:654
公眾號圖片被壓縮 瀏覽:291
github優秀java 瀏覽:594
高壓縮視頻播放器 瀏覽:413
linux檢測apache 瀏覽:742
運行命令ur 瀏覽:939