1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录:
find . -name “*.tar” -exec mv {}./backup/;
注解:find –name 主要用于查找某个文件名字,-exec 、xargs可以用来承接前面的结果,然后将要执行的动作,一般跟find在一起用的很多,find使用我们可以延伸-mtime查找修改时间、-type是指定对象类型(常见包括f代表文件、d代表目录),-size 指定大小,例如经常用到的:查找当前目录30天以前大于100M的LOG文件并删除。
#find /home/yinshi.nc/taokeeper/zk_logs/version-2 -name “log*” -mtime +1 | xargs rm -f。
#find /home/yinshi.nc/taokeeper/logs/ -name “zookeeper.log.*” -mtime +1 | xargs rm -f。
要让rm识别find的结果,如下:find / -name filename |xargs rm -rf之所以find . -name filename |rm -rf不通过,是因为rm命令不接受从标准输入传过来的指令查找含特定字符串的文件例如查找当前目录下含有"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、批量解压当前目录下以.zip结尾的所有文件到指定目录:
for i in `find . –name “*.zip”–type f `
do
unzip –d$i/data/www/img/
done
注解:forI in (command);do … done为for循环的一个常用格式,其中I为变量,可以自己指定。
3、sed常用命收集:test.txt做测试
如何去掉行首的.字符: sed-i 's/^.//g' test.txt
在行首添加一个a字符: sed's/^/a/g' test.txt
在行尾添加一个a字符: sed's/$/a/' tets.txt
在特定行后添加一个c字符:sed '/wuguangke/ac' test.txt
在行前加入一个c字符: sed'/wuguangke/ic' test.txt
更多sed命令请查阅相关文档。
4、如何判断某个目录是否存在,不存在则新建,存在则打印信息。
if
[! –d /data/backup/];then
Mkdir–p /data/backup/
else
echo "The Directory alreadyexists,please exit"
fi
注解:if…;then …else ..fi:为if条件语句,!叹号表示反义“不存在“,-d代表目录。linux命令
5、监控linux磁盘根分区,如果根分区空间大于等于90%,发送邮件给Linux SA
(1)、打印根分区大小
df -h |sed -n '//$/p'|awk '{print $5}'|awk –F ”%” '{print $1}'
上面的例子是将脚本作为命令行自变量传递给awk,我们也可以把脚本写入一个外部文件,然后通过-f选项向awk传递这个脚本文件。
在 address.awk 的 print 语句中,可以看到 awk 会连接(合并)一行中彼此相邻的字符串。