@CrazyHenry
2018-05-11T18:29:04.000000Z
字数 1425
阅读 992
xxxxLinux命令行
- Author:李英民 | Henry
- E-mail: li
_
yingmin@
outlookdot
com- Home: https://liyingmin.wixsite.com/henry
快速了解我: About Me
转载请保留上述引用内容,谢谢配合!
find ./ \( -name "*cpp" -o -name "*txt" \) -print #找到当前目录下的cpp和txt文件
find ./ \( -name "*cpp" -o -name "*txt" \) #跟上边等价
find . -regex ".*\(\.txt|\.pdf\)$" #正则查找,-regex表示忽略大小写,好像跑不通!
find ./ ! -name "*.txt" -print #取非
find . -maxdepth 1 -type f #指定搜索深度为1,查找文件类型为f(文件类型)
find . -type d -print //只列出所有目录,-type f 文件 / l 符号链接 / d 目录
二进制文件和文本文件无法直接通过find的类型区分出来;file命令可以检查文件具体类型(二进制或文本):
file 1.cpp
ls -lrt | awk '{print $9}'|xargs file|grep ELF| awk '{print $1}'|tr -d ':' #找到所有二进制文件
ls -lrt | awk '{print $9}'|xargs file|grep ASCII| awk '{print $1}'|tr -d ':' #找到所有文本文件
awk '{print $9}' 表示打印第9个域,然后这个域的结果作为file命令的参数,file之后的结果作为grep的输入,然后grep的结果再作为awk的输入,打印第1个域,然后将第一个域的末尾的:删除
find . -atime 7 -type f -print
find . -atime -7 -type f -print
find . -atime +7 -type f -print
find . -type f -size +2k # 找到>2k的文件,k/M/G
find . -type f -perm 666 -print #找到具有读写权限的文件
find . -type f -user liyingmin -print #属于用户liyingmin的文件
注意以上没有指明查找深度的find,都会递归到每个文件夹:
find . -type f -name "*.cc" -delete #删除
find . type f -name "*.cc" | xargs rm #与上同
find . type f -name "*.cc" -exec rm {} \; #与上同
find . -type f -user liyingmin -exec chown weber {} \; #将目录下所有liyingmin的文件变为weber的
#{}是一个特殊的字符串,对于每一个匹配的文件,{}会被替换成相应的文件名
find . -type f -mtime -7 -name "*.txt" -exec cp {} new \;# 将最近7天修改过内容的文件复制到new文件夹中
find . -type f -mtime +10 -name "*.txt" -exec ./commands.sh {} \;# 执行脚本,进更多操作