xargs结合管道操作符|,可以完成很多看似复杂的问题:

1、快速删除所有.log日志文件

机器运行久了,就会有各式各样的日志文件,散落在各个目录下,可以利用下面的方法:

find ./ -name '*.log' | xargs rm -rf

上面的代码,先把当前目录及子目录下的所有后缀是log的文件找出来,然后做为参数,传递给 rm -rf ,这样就把日志文件给干掉了。

2、根据名字找到运行的进程并杀掉

比如:有一个java程序在服务器上,我们在写部署脚本时,要先把之前在运行的程序kill掉,如果只知道运行的mainClass名称,不知道pid,可以参考下面这样

ps -ef|grep java| grep 'mainClass名称' | awk '{print $2}' | xargs kill -

大家把上面的'mainClass名称'换成需要查找的进程名即可,原理还是先找到所有java进程,然后再grep过滤出指定的mainClass,再用awk把pid取出来,最后利用xargs传给kill 干掉。(注:如果不希望强制杀死,而是等当前请求处理完后再结束,把-9去掉即可)

3、批量删除指定key前缀的redis缓存

redis并没有批量删除某些前缀key缓存的方法,可以参考下面的做法

./redis-cli -h 10.1.2.3 -p  -n  KEYS "shop:info:*" | xargs ./redis-cli -h 10.1.2.3 -p  -n  DEL

即:先连到10.1.2.3:6381 ,并切换到db1 ,然后找到shop:info:*匹配的所有key,然后再用xargs传到后面的命令删除

4、找出端口冲突的进程并kill掉

有时候启动一个程序时,发现端口被其它程序占用了,下面的方法可以干掉占用的程序

echo $(lsof -i: | awk '{print $2}') | awk '{print $2}' | xargs kill -

即:找出8081端口对应的pid,然后干掉

明白原理后,相信大家可以举一反三,发现更多的应用场景。

bash编程之xargs实用技巧的更多相关文章

  1. bash编程之case语句,函数

    bash脚本编程:之case语句   条件测试: 0: 成功 1-255: 失败   命令: [ expression ] [[ expression ]] test expression   exP ...

  2. js基础进阶--编的实用技巧(一)

    我的个人博客:http://www.xiaolongwu.cn 在平时的开发中,编码技巧很重要,会让你少写很多代码,起到事倍功半的效果. 下面总结几种简单的技巧,大家共同学习一下 1. 利用+.-./ ...

  3. shell脚本编程之for语句、if语句使用介绍

    介绍了shell脚本编程之for语句.if语句的使用方法. 上部: 面向过程: 顺序执行 选择执行: if, case 循环执行: for, while, until 一.for语句 格式:      ...

  4. iOS 多线程编程之Grand Central Dispatch(GCD)

    介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其它的对称多处理系统的系统.这建立在任务并行运行的线程池模式的基础上的. 它 ...

  5. Linux编程之ICMP洪水攻击

    我的上一篇文章<Linux编程之PING的实现>里使用ICMP协议实现了PING的程序,ICMP除了实现这么一个PING程序,还有哪些不为人知或者好玩的用途?这里我将介绍ICMP另一个很有 ...

  6. shell编程之awk命令详解

    shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...

  7. Linux中编写Bash脚本的10个技巧

    Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 ...

  8. 使用FlashPaper在线转换.doc为.swf_实用技巧

    https://yq.aliyun.com/ziliao/160044?spm=5176.8246799.0.0.JBbqjY 摘要: 本文讲的是使用FlashPaper在线转换.doc为.swf_实 ...

  9. Buildroot构建指南--快速上手与实用技巧

    Buildroot官方全英文使用手册的链接是https://buildroot.org/downloads/manual/manual.html,需要知道每一个细节的朋友,可以仔细查阅,这篇文章只是我 ...

随机推荐

  1. 一些CSS3的乐趣 - 工作也能发现乐的源头

    中秋节 translate 前些日子做一个中秋节的专题,主要就是写一个效果,月亮滚动,花瓣飘落.具体代码如下: .icons {z-index:10088; position:absolute; -w ...

  2. DDLog设置方法

          CHENYILONG Blog DDLog设置方法 本文永久地址为http://www.cnblogs.com/ChenYilong/p/3984246.html,转载请注明出处. 201 ...

  3. 第10月第4天 Mac g++ sfml opendir

    1. g++ OpenGL.cpp -I/Users/temp/Downloads/SFML-2.4.2-osx-clang/include -L/usr/local/lib -framework O ...

  4. 第9月第7天 uicollectionview

    1. /** The margins used to lay out content in the section controller. @see `-[UICollectionViewFlowLa ...

  5. 对git简单的认识

    了解git工作区.暂存区.版本库: 其中,使用 git add .就是将文件添加到了暂存区:而git commit -m ‘desc’:将暂存区的文件添加到版本库: 每次更新项目的步骤: 1)每次更新 ...

  6. 01 uni-app框架学习:项目创建及底部导航栏tabBar配置

    1.创建一个项目类型选择uniapp 2. pages里新建3个页面如下 3.在pages.json中配置底部导航tabBar 效果展示:

  7. tensorboard遇到的坑

    <ul><li>No graph definition files were found.</li></ul> <p>启动命令 tensor ...

  8. 洛谷 P4609: [FJOI2016] 建筑师

    本省省选题是需要做的. 题目传送门:洛谷P4609. 题意简述: 求有多少个 \(1\) 到 \(N\) 的排列,满足比之前的所有数都大的数正好有 \(A\) 个,比之后的所有数都大的数正好有 \(B ...

  9. pip2和pip3冲突问题解决方法

    python使用pip安装模块时报错:unable to create process using ' '的解决方法: 参考:http://qoogle.cn/?id=39 1.删除C:\Python ...

  10. 探秘Java类加载

    Java是一门面向对象的编程语言. 面向对象以抽象为基础,有封装.继承.多态三大特性. 宇宙万物,经过抽象,均可归入相应的种类.不同种类之间,有着相对井然的分别. Java中的类,便是基于现实世界中的 ...