bash知识点:文件测试
bash知識(shí)點(diǎn):文件測(cè)試(測(cè)試文件是否存在,文件是某種類型)
單目測(cè)試-e file:測(cè)試文件是是否存在
-a file:測(cè)試文件是是否存在
-f file:測(cè)試是否為普通文件,是為真,否則為假
-d file:測(cè)試是否為目錄文件,是為真,否則為假
-b file:測(cè)試是否存在,并且是否是塊設(shè)備文件
-c file:測(cè)試是否存在,并且是否是字符設(shè)備文件
-h file:測(cè)試是否存在,并且是否是符號(hào)鏈接文件
-p file:測(cè)試是否存在,并且是否是管道文件
-r file:測(cè)試是否存在,并且當(dāng)前用戶是否有讀取權(quán)限
-w file:測(cè)試是否存在,并且當(dāng)前用戶是否有寫權(quán)限
-x file:測(cè)試是否存在,并且當(dāng)前用戶是否有執(zhí)行權(quán)限
雙目測(cè)試:
file1 -nt file2:測(cè)試file1是否比file2新一些。
例1:如果/tmp/hellodir不存在則創(chuàng)建。
#!/bin/bash
fileName=/tmp/hellodir
if [ -e $fileName ];then
mkdir $fileName
fi
例2:下載一個(gè)文件,如果which wget不存在,則退出5,如果不可執(zhí)行which wget,則退出6
#!/bin/bash
url ='https://s2.51cto.com/wyfs02/M01/48/35/wKiom1QGaT2yybbeAAGp1WmlJ7k673.jpg'
which wget &> /dev/null || exit 5
downloader=`which wget`
[ -x $downloader ] || exit 6
$downloader $url
例3:寫一個(gè)腳本,完成如下任務(wù)
1、分別復(fù)制/var/log下的文件到/tmp/logs/中
2、復(fù)制目錄是,才使用cp -r
3、復(fù)制文件時(shí),使用 cp
4、復(fù)制鏈接文件,使用cp -d
5、其他類型,使用cp -a
#!/bin/bash
targetDir='/tmp/logs'
[ -d $targetDir ] || mkdir $targetDir
for fileName in /var/log/*; do
? ?if [ -d $fileName ];then
copyCommand='cp -r'
? ?elif [ -f $fileName ];then
copyCommand='cp'
? ?elif [ -h $fileName ];then
copyCommand='cp -d'
? ? else?
copyCommand='cp -a'
? ? fi
$copyCommand $fileName $targetDir
done
轉(zhuǎn)載于:https://blog.51cto.com/8757576/1555522
總結(jié)
以上是生活随笔為你收集整理的bash知识点:文件测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到在逃命有什么寓意
- 下一篇: 梦到好多蝎子是怎么回事