當前位置:首頁 » 編程軟體 » 腳本判斷目錄是否存在

腳本判斷目錄是否存在

發布時間: 2022-05-29 22:36:47

㈠ 編寫shell腳本,對任意指定的目錄,判斷目錄是否存在。若存在,遍歷此目錄中所有

摘要 在編寫shell腳本時,通常最開始的工作是對環境的檢查,比如檢查某一文件或目錄是否存在,並執行相應的操作等。下面的shell腳本實現的功能是,先檢查某一目錄是否存在,不存在的話就創建此目錄,存在的話就cd到這個目錄下。

㈡ bat判斷一個文件是否存在

使用BAT命令判斷文件是否存在。

範例:

@echo off

if not exist c:Temp1.txt goto nofile --1

goto start --2

:nofile

\xp emp111.txtc: emp1.txt --3

:start

mstsc.exe --4

注釋:

1:此處的意思是判斷如果不存在C:TEMP1.TXT 則跳轉至自定義的NOFILE的腳本,如果存在剛跳過。執行下一步。

2:執行自定義START腳本。

3:此處為執行第一句判斷的後續內容,(復制網路路徑\SERVERTEMP111.TXT到當前機器中的C:TEMP目錄中並改名為1.txt。

4:執行MSTSC.exe程序。

㈢ 關於linux,shell腳本中怎樣判斷文件是否有內容

可以用「test 條件表達式」進行測試,如:test -f /etc/fstab 測試文件/etc/fstab文件是否存在

-e File 如果文件File存在(Exist),則為True
-s File 如果文件File存在且文件大小(Size)大於零,則為True
-f File 如果文件File存在且是普通文件(File),則為True
-d File 如果文件File存在且是目錄(Directory),則為True
-b File 如果文件File存在且是塊(Block)特殊文件,則為True
-c File 如果文件File存在且是字元(Character)特殊文件,則為True
-L File 如果文件File存在且是符號鏈接(Link)文件,則為True
-r File 如果文件File存在且是可讀的(Readable),則為True
-w File 如果文件File存在且是可寫的(Writable),則為True
-x File 如果文件File存在且是可執行的(Executable),則為True
-O File 如果文件File存在且屬於當前用戶(Owner),則為True
-G File 如果文件File存在且屬於當前用戶組(Group),則為True
File1 -nt File2 如果文件File1新於(Newer Then) File2,則為True
File2 -ot File2 如果文件File1舊於(Older Then) File2,則為True

㈣ Shell腳本中判斷文件,目錄是否存在或者具有

#!/bin/sh
NovaPath=」/var/log/httpd/」
NovaFile=」/var /log/httpd/access.log」
#這里的-x 參數判斷$NovaPath是否存在並且是否具有可執行許可權
if [ ! -x "$NovaPath"]; then
mkdir 「$NovaPath」
fi
#這里的-d 參數判斷$NovaPath是否存在
if [ ! -d "$NovaPath"]; then
mkdir 「$NovaPath」
fi
#這里的-f參數判斷$NovaFile是否存在
if [ ! -f "$NovaFile" ]; then
touch 「$NovaFile」
fi
#其他參數還有-n,-n是判斷一個變數是否是否有值
if [ ! -n "$NovaVar" ]; then
echo 「$NovaVar is empty」
exit 0
fi
#兩個變數判斷是否相等
if [ "$var1" = "$var2" ]; then
echo 『$var1 eq $var2′
else
echo 『$var1 not eq $var2′
fi

㈤ 如何在shell腳本中判斷文件或者文件夾是否存在

使用-e 判斷,例如
1
2
3
4
if [ -e $FILE ]
then
echo $FILE 作為文件或文件夾是存在的
fi

㈥ shell腳本查看目錄下是否有文件

你能不能一次把問題提完整呢。
shell 沒有提供處理文件系統的底層功能。
可以使用重定向,在得到一行後就立刻匹配,完成後立刻退出。它不需要等到ls命令完成。可以操作目錄下存在大量文件的情況。
效率最快的是這個:

ls /opt -1F --sort=none | ( read LINE;echo "$LINE"| if grep -q "/$" ; then exit 0 ;else exit 1 ; fi ;)

這個命令返回0 表示/opt 目錄下存在目錄(不代表全部都是目錄,這條命令基於你在問題中的假設)。返回非0表示包含非目錄文件。
-1 表示ls 輸出一行個文件。
-F 表示輸出的每個文件後綴一個符號表示文件類型,文件夾的後綴為 /
--sort=none 表示按照磁碟存儲順序進行輸出,不進行排序。
|grep -q '/$' 表示 如果匹配到/ 結尾的行。

最近幾天你提的問題相當零散。都不知道你的思維對不對。
shell 本身就不是高效率的語言。想要高效率應該使用其他腳本語言,例如perl 。

㈦ shell判斷文件,目錄是否存在或者具有許可權

#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
#這里的-x 參數判斷$myPath是否存在並且是否具有可執行許可權
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi
#這里的-d 參數判斷$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
#這里的-f參數判斷$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
#其他參數還有-n,-n是判斷一個變數是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi
#兩個變數判斷是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi
========================================
shell 判斷語句
流程式控制制 "if" 表達式 如果條件為真則執行then後面的部分: if ....; then
....
elif ....; then
....
else
....
fi
大多數情況下,可以使用測試命令來對條件進行測試。比如可以比較字元串、判斷文件是否存在及是否可讀等等… 通常用" [ ] "來表示條件測試。注意這里的空格很重要。要確保方括弧的空格。
[ -f "somefile" ] :判斷是否是一個文件
[ -x "/bin/ls" ] :判斷/bin/ls是否存在並有可執行許可權
[ -n "$var" ] :判斷$var變數是否有值
[ "$a" = "$b" ] :判斷$a和$b是否相等 -r file用戶可讀為真
-w file用戶可寫為真
-x file用戶可執行為真
-f file文件為正規文件為真
-d file文件為目錄為真
-c file文件為字元特殊文件為真
-b file文件為塊特殊文件為真
-s file文件大小非0時為真
-t file當文件描述符(默認為1)指定的設備為終端時為真
######################################################### 含條件選擇的shell腳本
對於不含變數的任務簡單shell腳本一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell腳本編程支持此類運算,包 括比較運算、判斷文件是否存在等。基本的if條件命令選項有: -eq —比較兩個參數是否相等(例如,if [ 2 –eq 5 ])
-ne —比較兩個參數是否不相等
-lt —參數1是否小於參數2
-le —參數1是否小於等於參數2
-gt —參數1是否大於參數2
-ge —參數1是否大於等於參數2
-f — 檢查某文件是否存在(例如,if [ -f "filename" ])
-d — 檢查目錄是否存在
幾 乎所有的判斷都可以用這些比較運算符實現。腳本中常用-f命令選項在執行某一文件之前檢查它是否存在。 ################################################################## 判斷文件是否存在 #!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" [email protected] <error.log
fi

㈧ shell判斷文件,目錄是否存在或者具有許可權centos

因shell還不是很熟練,所以做此筆記,方便查看。
#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var
/log/httpd/access.log"
#這里的-x
參數判斷$myPath是否存在並且是否具有可執行許可權
if
[
!
-x
"$myPath"];
then
mkdir
"$myPath"
fi
#這里的-d
參數判斷$myPath是否存在
if
[
!
-d
"$myPath"];
then
mkdir
"$myPath"
fi
#這里的-f參數判斷$myFile是否存在
if
[
!
-f
"$myFile"
];
then
touch
"$myFile"
fi
#其他參數還有-n,-n是判斷一個變數是否是否有值
if
[
!
-n
"$myVar"
];
then
echo
"$myVar
is
empty"
exit
0
fi
#兩個變數判斷是否相等
if
[
"$var1"
=
"$var2"
];
then
echo
'$var1
eq
$var2'
else
echo
'$var1
not
eq
$var2'
fi
========================================
shell
判斷語句
流程式控制制
"if"
表達式
如果條件為真則執行then後面的部分:
if
....;
then
....
elif
....;
then
....
else
....
fi
大多數情況下,可以使用測試命令來對條件進行測試。比如可以比較字元串、判斷文件是否存在及是否可讀等等…
通常用"
[
]
"來表示條件測試。注意這里的空格很重要。要確保方括弧的空格。
[
-f
"somefile"
]
:判斷是否是一個文件
[
-x
"/bin/ls"
]
:判斷/bin/ls是否存在並有可執行許可權
[
-n
"$var"
]
:判斷$var變數是否有值
[
"$a"
=
"$b"
]
:判斷$a和$b是否相等
-r
file用戶可讀為真
-w
file用戶可寫為真
-x
file用戶可執行為真
-f
file文件為正規文件為真
-d
file文件為目錄為真
-c
file文件為字元特殊文件為真
-b
file文件為塊特殊文件為真
-s
file文件大小非0時為真
-t
file當文件描述符(默認為1)指定的設備為終端時為真
#########################################################
含條件選擇的shell腳本
對於不含變數的任務簡單shell腳本一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell腳本編程支持此類運算,
包括比較運算、判斷文件是否存在等。基本的if條件命令選項有:
-eq
—比較兩個參數是否相等(例如,if
[
2
–eq
5
])
-ne
—比較兩個參數是否不相等
-lt
—參數1是否小於參數2
-le
—參數1是否小於等於參數2
-gt
—參數1是否大於參數2
-ge
—參數1是否大於等於參數2
-f

檢查某文件是否存在(例如,if
[
-f
"filename"
])
-d

檢查目錄是否存在

乎所有的判斷都可以用這些比較運算符實現。腳本中常用-f命令選項在執行某一文件之前檢查它是否存在。
##################################################################
判斷文件是否存在
#!/bin/sh
today=`date
-d
yesterday
+%y%m%d`
file="apache_$today.tar.gz"
cd
/home/chenshuo/shell
if
[
-f
"$file"
];then
echo
"OK"
else
echo
"error
$file"
>error.log
mail
-s
"fail
backup
from
test"
[email protected]
fi

㈨ shell腳本判斷文件夾下是否有文件

search_dir=/tmp/test
include_subdir=1

if[$include_subdir-eq1];then
n=$(find$search_dir-typef-execsh-c'printf"%s ""$1";kill"$PPID"'sh{};|grep-v"Terminated"|wc-l)
else
n=$(find$search_dir-maxdepth1-typef-execsh-c'printf"%s ""$1";kill"$PPID"'sh{};|grep-v"Terminated"|wc-l)
fi

結果 n 為 0 表示指定目錄下面沒有文件,否則有文件。如果不需要檢查指定目錄下的子目錄,把 include_subdir 置為 0 即可。find 命令中較復雜的那部分是為了實現找到第一個文件時就停止查找,避免檢查有大量文件的目錄時影響性能。

㈩ 編寫一個shell腳本,依次判斷位置參數$1-$9代表的文件名,在當前目錄下是否存在

題主你好,

代碼及測試截圖如下:

說明: 上圖共有3條命令:

第一條: ls -l列出了當前文件夾中共有5個文件, 分別為A,B,C,D,user.sh.這裡面user.sh是我們的腳本文件;

第二條: cat user.sh 看一下user.sh這個腳本中的內容;

第三條: ./user.sh A B C E 執行腳本;

*.這裡面代碼中沒有明確給出$1-$9,而是直接使用的$@,題主看一下,如果不行的話代碼可以改成包含$1到$9的

希望可以幫到題主,歡迎追問

熱點內容
程序源代碼加密 發布:2024-04-28 22:10:42 瀏覽:835
安卓轉移到ios有什麼變化 發布:2024-04-28 22:01:05 瀏覽:392
三洋電視wifi解鎖密碼是多少 發布:2024-04-28 21:59:36 瀏覽:628
東方財富登陸密碼是什麼 發布:2024-04-28 21:49:54 瀏覽:734
怎麼看電腦wifi的密碼 發布:2024-04-28 21:42:26 瀏覽:296
怎樣在全民k歌上傳照片 發布:2024-04-28 21:37:59 瀏覽:841
pythonqt設計師 發布:2024-04-28 20:44:29 瀏覽:533
在線支付php 發布:2024-04-28 20:20:10 瀏覽:542
安卓車機開機動畫一般什麼格式 發布:2024-04-28 20:11:21 瀏覽:288
jnic調用java 發布:2024-04-28 20:09:24 瀏覽:280