1、查找當(dāng)前目錄下所有以.tar結(jié)尾的文件然后移動(dòng)到指定目錄:
find . -name “*.tar” -exec mv {}./backup/;
注解:find –name 主要用于查找某個(gè)文件名字,-exec 、xargs可以用來承接前面的結(jié)果,然后將要執(zhí)行的動(dòng)作,一般跟find在一起用的很多,find使用我們可以延伸-mtime查找修改時(shí)間、-type是指定對(duì)象類型(常見包括f代表文件、d代表目錄),-size 指定大小,例如經(jīng)常用到的:查找當(dāng)前目錄30天以前大于100M的LOG文件并刪除。
#find /home/yinshi.nc/taokeeper/zk_logs/version-2 -name “l(fā)og*” -mtime +1 | xargs rm -f。
#find /home/yinshi.nc/taokeeper/logs/ -name “zookeeper.log.*” -mtime +1 | xargs rm -f。
要讓rm識(shí)別find的結(jié)果,如下:find / -name filename |xargs rm -rf之所以find . -name filename |rm -rf不通過,是因?yàn)閞m命令不接受從標(biāo)準(zhǔn)輸入傳過來的指令查找含特定字符串的文件例如查找當(dāng)前目錄下含有"the string you want find…"字符串的文件:$find . -type f -exec grep “the string you want find…” {} 。
\svn 刪除所有的 .svn文件find . -name .svn -type d -exec rm -fr {} \。
2、批量解壓當(dāng)前目錄下以.zip結(jié)尾的所有文件到指定目錄:
for i in `find . –name “*.zip”–type f `
do
unzip –d$i/data/www/img/
done
注解:forI in (command);do … done為for循環(huán)的一個(gè)常用格式,其中I為變量,可以自己指定。
3、sed常用命收集:test.txt做測(cè)試
如何去掉行首的.字符: sed-i 's/^.//g' test.txt
在行首添加一個(gè)a字符: sed's/^/a/g' test.txt
在行尾添加一個(gè)a字符: sed's/$/a/' tets.txt
在特定行后添加一個(gè)c字符:sed '/wuguangke/ac' test.txt
在行前加入一個(gè)c字符: sed'/wuguangke/ic' test.txt
更多sed命令請(qǐng)查閱相關(guān)文檔。
4、如何判斷某個(gè)目錄是否存在,不存在則新建,存在則打印信息。
if
[! –d /data/backup/];then
Mkdir–p /data/backup/
else
echo "The Directory alreadyexists,please exit"
fi
注解:if…;then …else ..fi:為if條件語句,!嘆號(hào)表示反義“不存在“,-d代表目錄。linux命令
5、監(jiān)控linux磁盤根分區(qū),如果根分區(qū)空間大于等于90%,發(fā)送郵件給Linux SA
(1)、打印根分區(qū)大小
df -h |sed -n '//$/p'|awk '{print $5}'|awk –F ”%” '{print $1}'
上面的例子是將腳本作為命令行自變量傳遞給awk,我們也可以把腳本寫入一個(gè)外部文件,然后通過-f選項(xiàng)向awk傳遞這個(gè)腳本文件。
在 address.awk 的 print 語句中,可以看到 awk 會(huì)連接(合并)一行中彼此相鄰的字符串。