您的位置:首页 > 运维架构 > Shell

linux shell find 常用用法总结

2017-06-01 20:30 387 查看
find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,执行相应的操作

* find base_path  列出当前目录及子目录下所有的文件和文件夹
* find . -print/-print0  当使用 -print时, '\n'作为用于对输出的文件名进行分隔(默认);-print0指明使用'\0'作为匹配的文件名之间的定界符
* find . -name/-iname "*.txt" 通过文件名匹配查找,-iname是忽略大小写
* find . \( -name "*.txt" -o -name "*.pdf" \) -print  选项-o用来匹配多个条件
* find /user/name -path "*/password/*" 选项-path用于匹配路径,与-name性质相同
* find . -regex/-iregex ".*\(\.py\|\.sh\)$" 选项-regex用于正则表达式匹配
* find . ! -name "*.txt" -print          ! 代表匹配的都不打印
* find . -maxdepth 1 -name "f*" -print  选项-maxdepth用来表示最大的查找深度,1则表示当前的目录 -mindepth表示查找的最小深度,可以两者搭配使用( -maxdepth和-mindepth应该作为find的第三个参数出现, 如果-maxdepth作为第四个参数, -type作为第三个参数, find首先会找出符合-type的所有文件,然后在所有匹配的文件中再找出符合指定深度的那些)
* find . -type d -print  选项 -type 根据文件类型匹配文件,f为file,d为dictionary,l为link,c为chardev,b为blockdev,s为socket,p为FIFO
* find . -type f -atime/-ctime/-mtime +7 -print   选项-atime/-ctime/-mtime 根据各种文件属性的时间选项进行查找
* find . -type f -newer file.txt -print  选项 -newer 查找出所有比对比文件更新的文件
* find . -type f -size -2k/+2k/2k  通过文件大小查找文件
* find . -type f -name "*.swp" -delete   选项-delete用于删除已查找到的文件
* find . -type f -perm 644 -print   打印出权限为644的文件
* find . -type f -user somebody -print 选项-user为拥有者
* find . -type f -name "*.swp" -exec/-ok rm {} \;     对于每一个匹配的文件,{}会被替换成相应的文件名 , -ok 会询问是否执行操作
* find . -type f -name "*.txt" -exec printf "Text file: %s\n" {} \;    -exec能够同printf结合来生成有用的输出信息 
* find . \( -name ".git" -prune \) -o \( -type f -print \)   选项-prune 不搜索选项,跳过指定目录
* find . -type f -name "*.c" | grep "test" 查找文件名中包含test的文件
* find . -type f -name "*.c" | xargs grep "test"  查找文件中包含test的文件
* find . -type f -name "*.c" | xargs -i cp {} /tmp  选项-i可以让查找到的参数放进{}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息