博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

linx find

Posted on 2017-06-23 11:42  bw_0927  阅读(181)  评论(0)    收藏  举报
输出第一行和最后一行
(head -n1 && tail -n1) <file
cat file | (head -n1 && tail -n1)

 

 

find . -newer file -exec rm -rf '{}' \ ;

 

\;并不是在一起的,应分别解释

;是这个语句必要的符号,find -exec command ; 是语法标准。

其中 {} 表示替换当前找到的文件
而\表示对搜索的出来的文件(或者其他)需要采取escape方式,比如搜索出来的文件名或者目录有空格,这个时候,就需要把文件及路径用“”引起来,而不是让shell以为是两个文件或者目录.

 

find . -iname *.hpp -o -iname *.cpp -o -iname *.h -o -iname *.c -o -iname *.ipp > $v_fileName

 

find . -name "CMakeCache.txt" -o -name "CMakeFiles" -o -name "cmake_install.cmake" -o -name "Makefile" -exec rm -rf '{}' \;   //这种方法不行,只会删除最后一个find的记录; 应该使用下面的管道命令 + xargs
find . -name "CMakeCache.txt" -o -name "CMakeFiles" -o -name "cmake_install.cmake" -o -name "Makefile" | xargs -I {} /bin/rm -rf {}

 

find /data/LCMS/log/ -regextype "posix-egrep"  -regex ".*([0-9]{6}.log)"

 

-ctime    -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

 

-n  以内

+n 以前

-mmin +1  一分钟以前

-mmin -1  一分钟以内

-size -1000c  1000byte以内

-size +1000c  超过1000byte

find ./ -size -1000c  | head -n 100 找出前100个

 

find . -size -1000c  -type f -name "*.py" | xargs -I {} cp {} /bak_path

-i 表示 find 传递给xargs的结果 由{}来代替 

 

find third/rocksdb -maxdepth 1 -perm /u=x 

 

===============

xargs 和 管道的区别:

https://www.cnblogs.com/hwy89289709/p/7497069.html

参数与标准输入

这两个词我们在Linux命令中是很常见的。但是参数和标准输入其实是有区别的。我们日常使用的很多命令,例如ls -lah .中。l, a, h ,.都是命令ls的参数。至于标准输入,可以说它某种流数据。而通常来讲标准输入的流数据来源就是我们的终端输入。在Linux命令中,有些命令可以接收标准输入,有些是不能的。像上面的ls,就是只能接收参数,不能接收标准输入。像cat命令或echo命令,这些是可以的。

怎么分辨一个命令可不可以接收标准输入?很简单,当你敲完命令回车后,终端会等待接收你的输入,例如当你在终端输入cat后,终端会等待你输入字符,当你输入一些字符后,然后按Ctrl-C发送终止符号。这时cat命令接收标准输入完毕,执行命令,也就是将刚才键入的内容输出的标准输出上(屏幕)。

管道

管道的作用是将前面命令的标准输出作为后面命令的标准输入。这里要注意,后面的命令接收的是标准输入,所以如果命令不支持接收标准输入,那么就不能直接使用管道,例如常用的ls命令,只能使用参数,而不能使用标准输入,所以[command] | ls是不能使用的。而命令如echocat就可以。那么肯定有方法来实现这些不能使用标准输入的命令与管道结合,这时候xargs便出场了。

xargs命令

xargs命令通俗来讲就是将标准输入转成各种格式化的参数,所以命令[command 1] | xargs [command 2]就是将command 1的标准输出结果,通过管道|变成xargs的标准输入,然后xargs再将此标准输入变成参数,传给[command 2]。这样一来,通过xargs命令,我们便可以在管道后面使用那些不接收标准输入的命令了。例如[command 1]|xargs ls,是不是很熟悉?