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

linux判斷命令是否存在

發布時間:2023-05-14 02:23:14

linux中怎麼查看文件是否存在

兩個方式:find命令或者shell腳本。

1、find命令

(1)find是linux下用於查找文件的通用方法。

(2)find語法: find [指定查找目錄] [查找規則] [查找完後執行的action]

(3)例如:find /tmp -name wa* -type l ,是在/tmp下查找名為wa開頭且類型為符號鏈接的文件。找到就表示存在。

2、shell腳本

(1)在進行文件的自動處理中常常需要自動判別,下面的腳本判斷test.log是否存在,存在則顯示文件存在,否則顯示文件不存在。

(2)例子:編輯一個腳本判斷文件是否存在。

vi t.sh

#!/bin/bash

if [ -e /temp/test.log ];then //這里是判斷語句,-e表示進行比較結果為真則存在

echo "文件存在"

else

echo "文件不存在"

fi

保存退出

執行:

sh t.sh

㈡ shell中判斷指令是否存在3個內置指令

type命令被用於判斷另外一個命令是否是內置命令,但是它實際上有更多的用法。

command命令在shell腳本裡面,如果發現有個函數和我們需要執行的命令同名,我們可以用command用來強制執行命令,而不是同名函數,然後我們也可以在shell腳本裡面判斷某個命令是否存在,我們平時一般用which命令也行。

執行結果:

linux系統下會有一個hash表,當你剛開機時這個hash表為空,每當你執行過一條命令時,hash表陵坦困會記錄下這條命令的路徑,就相當於緩存一信旦樣。第一次執行命令shell解釋器默認的會從PATH路徑下尋找該命令的路徑,當你第二次使用該命令時,shell解釋器首先會查看hash表,沒有該命令才會去PATH路徑下尋找。
hash表的作用:
大大提高命令的調用速率。

參數

-l 顯示hash表內容
-r 清除hash表
-d openssl 刪除表中某一條(刪除openssl)
-t openssl 查看openssl命令路徑(hash表中沒有的話,可以調用which命令)
-p /usr/bin/openssl aliesopenssl 往尺念hash表中添加一條,執行aliesopenssl即執行openssl命令(起別名)

參考資料:
https://blog.csdn.net/heybeaman/article/details/89499537
https://www.cnblogs.com/jxhd1/p/6699177.html
https://www.cnblogs.com/pangkr-linux/p/10489582.html

㈢ 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判斷文件夾是否存在

#如果文件夾不存在,創建文件夾
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中怎麼查找文件夾是否存在

linux中使用find命令來查找文件夾,使用find
/
-name
要查找的文件夾名
-type
d方式來查找。
find命令說明
語法
find(選項)(參數)
選項
-amin<分鍾>:查找在指定時間曾被存取過的文件或目錄,單位以分鍾計算;
-anewer<參考文件或目錄>:查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄;
-atime<24小時數>:查找在指定時間曾被存取過的文件或目錄,單位以24小時計算;
-cmin<分鍾>:查找在指定時間之時被更改過的文件或目錄;
-cnewer<參考文件或目錄>查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-ctime<24小時數>:查找在指定時間之時被更改的文件或目錄,單位以24小時計算;
-daystart:從本日開始計算時間;
-depth:從指定目錄下最深層的子目錄開始查找;
-expty:尋找文件大小為0
byte的文件,或目錄下沒有任何子目錄或文件的空目錄;
-exec<執行指令>:假設find指令的回傳值為true,就執行該指令;
-false:將find指令的回傳值皆設為false;
-fls<列表文件>:此參數的效果和指定「-ls」參數類似,但會把結果保存為指定的列表文件;
-follow:排除符號連接;
-fprint<列表文件>:此參數的效果和指定「-print」參數類似,但會把結果保存成指定的列表文件;
-fprint0<列表文件>:此參數的效果和指定「-print0」參數類似,但會把結果保存成指定的列表文件;
-fprintf<列表文件><輸出格式>:此參數的效果和指定「-printf」參數類似,但會把結果保存成指定的列表文件;
-fstype<文件系統類型>:只尋找該文件系統類型下的文件或目錄;
-gid<群組識別碼>:查找符合指定之群組識別碼的文件或目錄;
-group<群組名稱>:查找符合指定之群組名稱的文件或目錄;
-help或——help:在線幫助;
-ilname<範本樣式>:此參數的效果和指定「-lname」參數類似,但忽略字元大小寫的差別;
-iname<範本樣式>:此參數的效果和指定「-name」參數類似,但忽略字元大小寫的差別;
-inum<inode編號>:查找符合指定的inode編號的文件或目錄;
-ipath<範本樣式>:此參數的效果和指定「-path」參數類似,但忽略字元大小寫的差別;
-iregex<範本樣式>:此參數的效果和指定「-regexe」參數類似,但忽略字元大小寫的差別;
-links<連接數目>:查找符合指定的硬連接數目的文件或目錄;
-iname<範本樣式>:指定字元串作為尋找符號連接的範本樣式;
-ls:假設find指令的回傳值為ture,就將文件或目錄名稱列出到標准輸出;
-maxdepth<目錄層級>:設置最大目錄層級;
-mindepth<目錄層級>:設置最小目錄層級;
-mmin<分鍾>:查找在指定時間曾被更改過的文件或目錄,單位以分鍾計算;
-mount:此參數的效果和指定「-xdev」相同;
-mtime<24小時數>:查找在指定時間曾被更改過的文件或目錄,單位以24小時計算;
-name<範本樣式>:指定字元串作為尋找文件或目錄的範本樣式;
-newer<參考文件或目錄>:查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-nogroup:找出不屬於本地主機群組識別碼的文件或目錄;
-noleaf:不去考慮目錄至少需擁有兩個硬連接存在;
-nouser:找出不屬於本地主機用戶識別碼的文件或目錄;
-ok<執行指令>:此參數的效果和指定「-exec」類似,但在執行指令之前會先詢問用戶,若回答「y」或「y」,則放棄執行命令;
-path<範本樣式>:指定字元串作為尋找目錄的範本樣式;
-perm<許可權數值>:查找符合指定的許可權數值的文件或目錄;
-print:假設find指令的回傳值為ture,就將文件或目錄名稱列出到標准輸出。格式為每列一個名稱,每個名稱前皆有「./」字元串;
-print0:假設find指令的回傳值為ture,就將文件或目錄名稱列出到標准輸出。格式為全部的名稱皆在同一行;
-printf<輸出格式>:假設find指令的回傳值為ture,就將文件或目錄名稱列出到標准輸出。格式可以自行指定;
-prune:不尋找字元串作為尋找文件或目錄的範本樣式;
-regex<範本樣式>:指定字元串作為尋找文件或目錄的範本樣式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:將find指令的回傳值皆設為true;
-typ<文件類型>:只尋找符合指定的文件類型的文件;
-uid<用戶識別碼>:查找符合指定的用戶識別碼的文件或目錄;
-used<日數>:查找文件或目錄被更改之後在指定時間曾被存取過的文件或目錄,單位以日計算;
-user<擁有者名稱>:查找符和指定的擁有者名稱的文件或目錄;
-version或——version:顯示版本信息;
-xdev:將范圍局限在先行的文件系統中;
-xtype<文件類型>:此參數的效果和指定「-type」參數類似,差別在於它針對符號連接檢查。
參數
起始目錄:查找文件的起始目錄。
示例:
根據文件類型進行搜索
find
.
-type
類型參數
類型參數列表:
f
普通文件
l
符號連接
d
目錄
c
字元設備
b
塊設備
s
套接字
p
fifo

㈥ 請問Linux中怎麼查看命令是否存在

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

㈦ linux命令中which、whereis、locate有什麼區別

which (尋找執行檔) :這個指令是根據PATH這個環境變數所規范明飢的路徑,去搜尋執行檔的檔名,所以,重點是找出執行檔而已,which 後面接的是完整檔名\x0d\x0awhereis (尋找特定檔案飢枯):搜尋linux資料庫檔案中所記錄的東西,和locate的主爛槐洞要區別在於後面的參數\x0d\x0alocate:搜尋linux資料庫檔案中所記錄的東西,後面直接跟檔案的部分名稱就行\x0d\x0afind:直接搜索整個硬碟

㈧ linux腳本如何判斷netstat命令是否已安裝

linux腳本判斷netstat命令是否安裝方法。
1、輸出httpdisalreadyinstalled",未晌衡安裝空喊則顯示httpdisnotinstalled。
2、linux腳本顯示httpd主配置文件,則是已安裝。
3、檢查yum倉庫配好,則宴虧做是已安裝。

㈨ 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 shell 判斷進程是否存在

如果你是通過一個進程的謹擾仔名字作為關鍵詞來查找進程是祥汪否存在的話,可使用
ps -ef | grep "<關鍵詞>" | wc -l
輸出為0表示不存在,輸出大於李襲0,表示存在,且數字就是這個關鍵詞進程的個數;

如果你是通過進程號PID來查找進程是否存在,可以使用
ps --no-heading <PID> | wc -l
同樣,
輸出為0表示不存在,輸出=1,表示存在,因為進程號不可能重復,所以輸出肯定非0即1

閱讀全文

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

熱點內容
微信聊天界面源碼 瀏覽:24
seo競價推廣點擊價格演算法公式 瀏覽:319
框架結構可以加密嗎 瀏覽:218
python編譯器怎麼清除 瀏覽:73
linux全局socks代理 瀏覽:611
php微信抽獎 瀏覽:771
壓縮演算法嵌入式移植 瀏覽:531
php新手小例子 瀏覽:233
按照醫生的演算法一周是幾天 瀏覽:805
三次b樣條曲線演算法 瀏覽:924
java7特性 瀏覽:555
愛山東app小學報名怎麼知道報沒報上 瀏覽:458
android獲取wifi信號 瀏覽:133
娜拉美妝app怎麼使用 瀏覽:760
有了源碼要買伺服器嗎 瀏覽:365
app怎麼查看自己的存款利息 瀏覽:515
碧藍安卓與b站有什麼區別 瀏覽:342
php靜態塊 瀏覽:719
ftpmget命令 瀏覽:475
源碼時代怎樣 瀏覽:415