Find工具主要用于操作系统文件、目录的查找,

1.语法参数格式为:

Find工具的语法格式:find  path(路径) -option(参数) action(动作);

PATH路径:可以任意路径、绝对路径、相对路径(/、/etc/、/home/);

Option参数:-name(名称)、-type(类型)、-mtime(时间)、-size(大小)、-perm(权限)等;

-name   filename                #查找名为filename的文件;
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件;
-size n[c] #查长度为n块[或n字节]的文件;
-perm #按执行权限来查找;
-user username #按文件属主来查找;
-group groupname #按组来查找;
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前;
-atime -n +n #按文件访问时间来查找文件;
-ctime -n +n #按文件创建时间来查找文件;
-mmin -n +n #按文件更改时间来查找文件,-n指n分钟以内,+n指n分钟以前;
-amin -n +n #按文件访问时间来查找文件;
-cmin -n +n #按文件创建时间来查找文件;
-maxdepth #查找目录级别深度。

Action动作:exec(承接)、xargs(承接)、print(打印)等;

2、find案例

例1:查找Linux操作系统下ens33网卡名称的配置文件路径:

find  /  -name  *ens33*
find /etc/ -name *ens33*

例2:查找Linux操作系统下所有的.rpm结尾的软件包所在的路径:

find / -name *.rpm
find / -name *.rpm -name libselinux*
find / -name *.rpm -name libselinux* ! -name libselinux-utils*

例3:找到如上软件包,并且将其拷贝至/tmp目录,指令如下:

for i in `find / -name *.rpm -name libselinux* ! -name libselinux-utils*`;do cp $i /tmp/ ;done
cp `find / -name *.rpm -name libselinux* ! -name libselinux-utils*` /tmp/
cp $(find / -name *.rpm -name libselinux* ! -name libselinux-utils*) /tmp/
find / -name *.rpm -name libselinux* ! -name libselinux-utils* -exec cp {} /tmp/ \;
find / -name *.rpm -name uwsgi* |xargs -i cp {} /tmp/
find / -name *.rpm -name libselinux* |xargs rm -rf (删除)
find / -name *.rpm -name libselinux* ! -name libselinux-utils* |xargs rm -rf {} (删除)
Exec和xargs两个参数不同点:exec一次查找一个然后传递(不占资源),xargs全部找到再统一传递(占资源);

例4:Find工具-name参数案列

find   /data/    -name   "*.txt"             #查找/data/目录以.txt结尾的文件;
find /data/ -name "[A-Z]*" #查找/data/目录以大写字母开头的文件;
find /data/ -name "test*" #查找/data/目录以test开头的文件;

例5:Find工具-type参数案列:

find   /data/    -type d                    #查找/data/目录下的文件夹;
find /data/ ! -type d #查找/data/目录下的非文件夹;
find /data/ -type l #查找/data/目录下的链接文件。
find /data/ -type d|xargs chmod -R #查目录类型并将权限设置为755;
find /data/ -type f|xargs chmod -R #查文件类型并将权限设置为644;

例6:Find工具-size参数案列:

find   /data/    -size   +1M                #查文件大小大于1Mb的文件;
find /data/ -size 10M #查文件大小为10M的文件;
find /data/ -size -1M #查文件大小小于1Mb的文件;

例7: Find工具-mtime参数案列:

atime,access time      文件被读取或者执行的时间;
ctime,change time 文件状态改变时间;
mtime,modify time 文件内容被修改的时间;
find /data/ -mtime + -name "*.log" #查找30天以前的log文件;
find /data/ -mtime - -name "*.txt" #查找30天以内的log文件;
find /data/ -mtime -name "*.txt" #查找第30天的log文件;
find /data/ -mmin + -name "*.log" #查找30分钟以前修改的log文件;
find /data/ -amin - -name "*.txt" #查找30分钟以内被访问的log文件;
find /data/ -cmin -name "*.txt" #查找第30分钟改变的log文件。

例8:Find工具参数综合案列:

find /data/  -name "*.log"  -type f  -size +10k -exec cp {} /tmp/ \;               #查找/data目录以.log结尾,文件大于10k的文件,同时cp到/tmp目录;
find /data/ -name "*.log" –type f -size +10k -perm -exec rm –rf {} \; #查找/data目录以.txt结尾,文件大于10k的文件,权限为644并删除该文件;
find /data/ -name "*.log" –type f -mtime + –size +10M -exec mv {} /tmp/ \; #查找/data目录以.log结尾,30天以前的文件,大小大于10M并移动到/tmp目录;

最新文章

  1. 【转】npm publish 发布
  2. mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' when using LOCK TABLES
  3. Codeforces Round #254 DZY Loves Colors
  4. Expanding Rods(二分POJ1905)
  5. KDTree
  6. C数据类型
  7. NSS_04 extjs中grid接收datetime类型参数列
  8. android布局##TableLayout和FrameLayout-android学习之旅(十五)
  9. 【土旦】在vue filters中 优雅的使用对象的key、value来替换 if switch多重判断简化流程
  10. List or delete hidden files from command prompt(CMD)
  11. AtCoder Regular Contest 103 E Tr/ee
  12. AWS机器学习初探(1):Comprehend - 自然语言处理服务
  13. 13.Mysql触发器
  14. MysqlHelper使用反射机制智能推算数据类型以及属性名称
  15. bat把npm换成淘宝源
  16. 小米范工具系列之一:小米范 web查找器
  17. CSU 1963 Feed the rabbit(斜率优化dp)
  18. 对java位运算之异或运算的一点记录
  19. HDU 1874畅通工程续(迪杰斯特拉算法)
  20. Secure REST API with oauth2 (翻译)

热门文章

  1. mysql 使用concat模糊查询
  2. 【JZOJ4359】【GDKOI2016】魔卡少女
  3. 惊闻!SOIC 和 SOP 竟然是有区别的
  4. @loj - 2507@ 「CEOI2011」Matching
  5. font-weight:bolder与设置数值的区别
  6. 【NS2】WiMAX_NS2说明文档(转载)
  7. hihocoder 1586 ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛-题目9 : Minimum【线段树】
  8. python3中的zip函数
  9. MySQL_连表查询
  10. linux中使用gbd进行单布调试