『壹』 linux判斷目錄是否存在命令linux判斷目錄
linux如何查看新建用戶的主目錄是什麼?
可以通過查看系統文件/etc/passwd來查看新建用戶的主目錄。
linux判斷文件是否存在?
兩個方式:find命令或者shell腳本。
1、find命令(1)find是linux下用於查找文件的通用方法。(2)find語法:find(3)例如:find/tmp-namewa*-typel,是在/tmp下查找名為wa開頭且類型為符號鏈接的文件。找到就表示存在。
2、shell腳本(1)在進行文件的自動處理中常常需要自動判別,下面的腳本判斷test.log是否存在,存在則顯示文件存在,否則顯示文件不存在。(2)例子:編輯一個腳本判斷文件是否存在。vit.sh#!/bin/bashif;then//這里是判斷語句,-e表示進行比較結果為真則存在echo"文件存在"elseecho"文件不存在"fi保存退出執行:sht.sh
Linux下簡單的判斷目錄中是否有新文件的Shell?
因shell還不是很熟練,所以做此筆記,方便查看。
#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var/log/httpd/access.log"
#這里的-x參數判斷$myPath是否存在並且是否具有可執行許可權
if;then
mkdir"$myPath"
fi
#這里的-d參數判斷$myPath是否存在
if;then
mkdir"$myPath"
fi
#這里的-f參數判斷$myFile是否存在
if;then
touch"$myFile"
fi
#其他參數還有-n,-n是判斷一個變數是否是否有值
if;then
echo"$myVarisempty"
exit0
fi
#兩個變數判斷是否相等
if;then
echo'$var1eq$var2'
else
echo'$var1noteq$var2'
fi
========================================
shell判斷語句
流程式控制制"if"表達式如果條件為真則執行then後面的部分:if....;then
....
elif....;then
....
else
....
fi
大多數情況下,可以使用測試命令來對條件進行測試。比如可以比較字元串、判斷文件是否存在及是否可讀等等?通常用""來表示條件測試。注意這里的空格很重要。要確保方括弧的空格。
:判斷是否是一個文件
:判斷/bin/ls是否存在並有可執行許可權
:判斷$var變數是否有值
:判斷$a和$b是否相等-rfile用戶可讀為真
-wfile用戶可寫為真
-xfile用戶可執行為真
-ffile文件為正規文件為真
-dfile文件為目錄為真
-cfile文件為字元特殊文件為真
-bfile文件為塊特殊文件為真
-sfile文件大小非0時為真
-tfile當文件描述符(默認為1)指定的設備為終端時為真
#########################################################
含條件選擇的shell腳本
對於不含變數的任務簡單shell腳本一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell腳本編程支持此類運算,
包括比較運算、判斷文件是否存在等。基本的if條件命令選項有:-eq—比較兩個參數是否相等(例如,if)
-ne—比較兩個參數是否不相等
-lt—參數1是否小於參數2
-le—參數1是否小於等於參數2
-gt—參數1是否大於參數2
-ge—參數1是否大於等於參數2
-f—檢查某文件是否存在(例如,if)
-d—檢查目錄是否存在
幾乎所有的判斷都可以用這些比較運算符實現。腳本中常用-f命令選項在執行某一文件之前檢查它是否存在。##################################################################判斷文件是否存在
#!/bin/sh
today=`date-dyesterday+%y%m%d`
file="apache_$today.tar.gz"
cd/home/chenshuo/shell
if;then
echo"OK"
else
echo"error$file">error.log
mail-s"failbackupfromtest"linuxcy@126.comfi
Linux下如何查看一個目錄下的內容?
在Linux下我們使用ls命令來查看一個目錄下的內容,如果單單使用ls則會顯示當前目錄下的內容,而如果ls/etc這樣後跟一個目錄的話,則會顯示etc這個目錄下的內容,可以去看看《Linux就該這么學》這本書的第二章,介紹了很多常用的命令,非常適合初學者。
如何判斷linux是文件還是目錄?
如果是腳本可以通過ls-l命令來判斷,因為目錄第一個字母是d。如果是編程可以參考以下內容。manstat;stat.h中有判斷是什麼文件的宏:S_ISREG()普通文件S_ISDIR()目錄文件S_ISCHR()字元特殊文件S_ISBLK()塊特殊文件S_ISFIFO()管道或FIFOS_ISLNK()符號連接(POSIX.1或SVR4無此類型)S_ISSOCK()套接字(POSIX.1或SVR4無此類型)具體可以參照APUE文件目錄相關章節。下面給出一個具體的例子:#includestdio.h>#includesys/stat.h>intmain(intargc,char*argv){structstatbuf;if(argc2){printf("NeedParameter");return-1;}if(lstat(argv,buf)0){printf("lstaterrorfor%srn",argv);return;}if(S_ISDIR(buf.st_mode))printf("%sIsDIRrn",argv);elseif(S_ISREG(buf.st_mode))printf("%sIsFILErn",argv);return0;}