xargs

find & xargs

一世执手 提交于 2020-01-19 23:05:59
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具,空格是默认界定符,默认命令是echo find . -name "*log.txt" | xargs rm -rf # 查找当前目录下所有的log.txt文件并删除 find命令的执行结果通过xargs传给后面的rm -rf作为参数 find . -name "*.a" | xargs ls -alFh # 显示当前目录及子目录下所有静态库的大小 # -h, --human-readable, with -l and/or -s, print human readable sizes (e.g., 1K 234M 2G) # -F, 目录以/后缀,可执行文件以*后缀 来源: https://www.cnblogs.com/cristiano-duan/p/12215823.html

find xargs grep查找文件及文件内容

感情迁移 提交于 2020-01-18 16:06:37
1,在某个路径下查文件。 在/etc下查找“*.log”的文件 find /etc -name “*.log” 2,扩展,列出某个路径下所有文件,包括子目录。 find /etc -name “*” 3,在某个路径下查找所有包含“hello abcserver”字符串的文件。 find /etc -name "*" | xargs grep "hello abcserver" 或者 find /etc -name “*” | xargs grep “hello abcserver” > ./cqtest.txt 作者:Joncc 链接:https://www.jianshu.com/p/94f46ddc24a9 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: https://www.cnblogs.com/arci/p/12209160.html

linux常用指令

放肆的年华 提交于 2020-01-18 02:20:45
find / | xargs grep function 查找系统根目录下面的所有文件的内容中包含有function字符串的文件列表。 find .|xargs grep x find . -exec grep x{} \; find / -name "httpd.conf" find / -name "rsync" 为 什么会这样能,因为通道命令符是把上一部的结果传递给下一步来处理,在 find . |grep x中虽然看似和find .|xargs grep x差不多,但是实际上还是有区别的。应为find .得到的结果是一串文件名集合,如果直接传递给grep的话,grep会把这些文件名看作一些无意义的字符串来处理。但是传递给xargs,他会把他当作 一个有意义的文件来处理。 来源: CSDN 作者: flc2762 链接: https://blog.csdn.net/flc2762/article/details/103886094

Group files and pipe to awk command

限于喜欢 提交于 2020-01-16 03:51:07
问题 I have files in a directory; they are named using YYYY_MM_DD: -rw-r--r-- 1 root root 497186 Apr 21 13:17 2012_03_25 -rw-r--r-- 1 root root 490558 Apr 21 13:17 2012_03_26 -rw-r--r-- 1 root root 488797 Apr 21 13:17 2012_03_27 -rw-r--r-- 1 root root 316290 Apr 21 13:17 2012_03_28 -rw-r--r-- 1 root root 490081 Apr 21 13:17 2012_03_29 -rw-r--r-- 1 root root 486621 Apr 21 13:17 2012_03_30 -rw-r--r-- 1 root root 490904 Apr 21 13:17 2012_03_31 -rw-r--r-- 1 root root 491788 Apr 21 13:17 2012_04_01 -rw

find命令总结

好久不见. 提交于 2020-01-16 00:42:10
一、命令简介:   find顾名思义就是查找文件的意思,能在系统中寻找你想要的文件。日常使用Linux系统中可能会经常用到这个命令,非常实用,掌握这个命令的用法会使你的工作更加效率 二、主要语法:   find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] 参数 说明 -name 按名称查找 -size 按大小查找 -user 按文件属主查找 -type 按类型查找 -mtime 按照文件的更改时间查找 -atime 按照文件的访问时间查找 -perm 按照文件权限查找 -regex 按照正则表达查找 一般情况下使用-name选项匹配字符串即可,复杂一点的可以使用正则表达式-regex选项 这里只列举比较常用的选项,具体的其他选项参数可以使用info find 或 man find命令进行查询 三、操作实例: 查找根目录下.c后缀的所有并打印出来 [root@localhost ~]# find / -type f -name "*.c" -print 查找/etc/目录下大于2M的所有文件 find /etc -size +2M 搜索当前目录下七天内被访问过的所有文件 find . -type f -atime -7 找出 /var/log

linux中批量删除带空格的文件

送分小仙女□ 提交于 2020-01-15 02:35:08
两种批量删除带空格文件的方式: 第一种用find找到需要删除的文件,-print0指将空格替换成Null;而xargs中的-0参数又将null转换成空格 find . -name "xfsf*" -print0 | xargs -0 rm -rf    第二种用ls查找需要删除的文件,xargs中的-i参数指将每一项的名称替换成{} ls . |grep -i "xxx*" | xargs -i rm -rf {}    单独删除时用\将空格转义 来源: https://www.cnblogs.com/liown/p/11060980.html

如何删除所有已合并的Git分支?

二次信任 提交于 2020-01-14 02:56:55
我有很多Git分支。 如何删除已经合并的分支? 有没有一种简单的方法可以将它们全部删除,而不是一个一个地删除它们? #1楼 我使用以下Ruby脚本删除我已经合并的本地和远程分支。 如果我要对具有多个远程服务器的存储库执行此操作,而只想从其中删除,则只需将select语句添加到远程服务器列表中,即可获取所需的远程服务器。 #!/usr/bin/env ruby current_branch = `git symbolic-ref --short HEAD`.chomp if current_branch != "master" if $?.exitstatus == 0 puts "WARNING: You are on branch #{current_branch}, NOT master." else puts "WARNING: You are not on a branch" end puts end puts "Fetching merged branches..." remote_branches= `git branch -r --merged`. split("\n"). map(&:strip). reject {|b| b =~ /\/(#{current_branch}|master)/} local_branches= `git branch -

shell练习(十)

余生长醉 提交于 2020-01-13 14:40:55
1、遍历目录 编写函数: 运行函数:./list_file.sh /usr/local/shell 1 、 统计当前文件夹下文件的个数   ls -l |grep "^-"|wc -l 2 、 统计当前文件夹下目录的个数   ls -l |grep "^d"|wc -l 3 、统计当前文件夹下文件的个数,包括子文件夹里的   ls -lR|grep "^-"|wc -l 4 、统计文件夹下目录的个数,包括子文件夹里的   ls -lR|grep "^d"|wc -l 2、统计当前目录下文件及文件个数 示例:统计当前目前下的文件个数: 3、自动重启start_tomcat.sh,及查看日志 ps -ef |grep tomcat |grep $tomcat_home |grep -v 'grep'|awk '{print $2}' | xargs kill -9 说明: “grep tomcat ” 的输出结果是,所有含有关键字“ tomcat ” 的进程。 “grep -v grep” 是在列出的进程中去除含有关键字“grep”的进程。 “cut -c 9-15” 是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。 awk '{print $2}' 的作用就是打印(print)出第二列的内容 “xargs kill -9” 中的xargs命令是用来把前面命令的输出结果

Linux常用命令备忘

白昼怎懂夜的黑 提交于 2020-01-09 23:52:57
文档查看和修改   vi /etc/hosts     i    修改模式     esc  退出修改     :q  正常退出(文件没有修改     :q!  不保存退出     :wq 保存退出   cat /etc/hosts  文档查看   ls    查看当前目录下所有文件   pwd   查看当前目录的绝对路径   ll     查看目录下文件的详细信息,包括权限属组等信息   find / -name web.xml   查看名字为web.xml的文件,需要等待片刻   find .|xargs grep -rl "google.com"  搜索当前目录文件内容并返回文件名   find .|xargs grep -r "google.com"   搜索当前目录文件内容并返回文件名,并展示命中行   find .|xargs grep -rn "google.com"  搜索当前目录文件内容并返回文件名,并展示行号   find .|xargs grep -rn1 "google.com" 搜索当前目录文件内容并返回文件名,并展示上下文内容   mkdir -p   创建文件   cat [目录1] >> [目录2]  把目录1的文件内容输入到目录2中   chmod +x filename  让执行文件能被./filename调用 修改系统配置   vi /etc

批量解压

强颜欢笑 提交于 2020-01-09 11:16:45
ls *.tar.gz | xargs -n1 tar xzvf 一、批量解压bz2文件 find -maxdepth 1 -name "*.bz2"|xargs -i tar xvjf {} 这条命令可解压当前目录下的所有bz2文件 批量解压是比较郁闷的事,以前尝试各种方法,甚至用脚本循环语句解压都不行 现在发现这条命令可以搞定,maxdepth表示搜索深度,1代表只搜索当前目录 二、批量解压gz文件(第二个方法最简单) 第一: for tar in *.tar.gz; do tar xvf $tar; done for tar in *.tar.bz2; do tar xvf $tar; done 第二:用tar命令批量解压某个文件夹下所有的tar.gz文件 ls *.tar.gz | xargs -n1 tar xzvf 第三:find -maxdepth 1 -name “*.bz2″|xargs -i tar xvjf {} 这条命令可解压当前目录下的所有bz2文件,maxdepth表示搜索深度,1代表只搜索当前目录 第四:for i in $(ls *.tar);do tar xvf $i;done 来源: https://www.cnblogs.com/wenter2016/p/12169880.html