歡迎您光臨本站 註冊首頁

linux shell 中判斷文件、目錄是否存在的方法

←手機掃碼閱讀     madbeef @ 2020-05-12 , reply:0

本文主要介紹了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 如果文件是軟鏈接,則為真
常用例子
如果存在某文件,則刪除
if [ -f trials ]; then rm ${result_path}trials; fi
如果沒有文件夾,則創建
if [ ! -d $result_name ];then mkdir -p $result_name fi
shell命令判斷文件或文件夾是否存在,先直接看實例:
#!/bin/sh #判斷文件存在,判斷是否為文件夾等 testPath="/Volumes/MacBookProHD/Mr.Wen/08 shell命令" testFile="/Volumes/MacBookProHD/Mr.Wen/08 shell命令/fileWen" #判斷文件夾是否存在 -d if [[ ! -d "$testPath" ]]; then echo "文件夾不存在" else echo "文件夾存在" fi #判斷文件夾是否存在,並且具有可執行權限 if [[ ! -x "$testFile" ]]; then echo "文件不存在並且沒有可執行權限" else echo "文件存在並有可執行權限" fi #判斷文件是否存在 if [[ ! -f "$testFile" ]]; then echo "文件不存在" else echo "文件存在" fi
在shell命令腳本編寫當中,會遇到各種對文件的判斷,除了以上常用的判斷,還有其他的可以使用,如下:
Conditional Logic on Files -a file exists. -b file exists and is a block special file. -c file exists and is a character special file. -d file exists and is a directory. -e file exists (just the same as -a). -f file exists and is a regular file. -g file exists and has its setgid(2) bit set. -G file exists and has the same group ID as this process. -k file exists and has its sticky bit set. -L file exists and is a symbolic link. -n string length is not zero. -o Named option is set on. -O file exists and is owned by the user ID of this process. -p file exists and is a first in, first out (FIFO) special file or named pipe. -r file exists and is readable by the current process. -s file exists and has a size greater than zero. -S file exists and is a socket. -t file descriptor number fildes is open and associated with a terminal device. -u file exists and has its setuid(2) bit set. -w file exists and is writable by the current process. -x file exists and is executable by the current process. -z string length is zero.
shell 判斷文件內容是否改變
判斷文件內容是否改變:
1)md5值判斷
2)diff 判斷
#添加日誌時間戳 function fn_showlog() { local curtime; curtime=`date +"%Y%m%d-%H:%M:%S"` echo "$curtime ------ $1"; } #判斷文件內容是否一致 function diff_file(){ for file in `ls $1` do if [ ! -f "$2$file" ];then fn_showlog "存在新增文件:$2$file" return 0 else diff $file $2$file if [ $? -ne 0 ];then fn_showlog "文件內容發生變化:$file" return 0 fi fi done return 1 } diff_file "python*Ip" "/home/admin/tools/" if [ $? -eq 0 ];then fn_showlog "內容發生改變......" else fn_showlog "內容未發生改變,退出腳本!" exit 0 fi


[madbeef ] linux shell 中判斷文件、目錄是否存在的方法已經有352次圍觀

http://coctec.com/docs/linux/show-post-234034.html