“一切皆文件”是 Linux的哲学思想之一, 这条命令可以统计当前linux系统中有多少文件ls -R / |wc -l &建议放在后台执行,因为你的系统文件很多则会消耗很多时间,你可以看见这个结果是庞大的,linux的系统中的文件实在是太多了,怎么样才能快速而且精确的在linux系统找出你想要的文件呢?Linux 的find命令提供了很强大的功能,学好find命令的使用,可以给你节省大量花费在找文件的时间。

find的基本语法格式:

find [查找位置] [查找标准] [处理动作]

查找位置:默认为当前目录,可以指定多个目录,多个之间用空格

查找标准:默认为查找指定目录下的所有文件

处理动作:显示到标准输出,默认为print

剖析find的查找标准可分为哪些:

1)文件名

-name "文件名称" : 根据文件名查找,支持glob

-iname "文件名称",根据文件名查找,不区分大小写

2)文件的属主、属组

-user "USERNAME" : 根据属主查找

-group "GROUP" : 根据属组查找

-uid "UID" : 根据UID查找

-gid "GID" : 根据GID查找

-nouser : 查找没有属主的文件

-nogroup : 查找没有属组的文件

复制代码

代码如下:

[root@Redhat6 /]# find / -nouser -nogroup #没有属主,也没有属组

/tmp/user1dir

[root@Redhat6 /]# ls -ld /tmp/user1dir/ #验证查找的文件是否符合要求,文件没有用户表示属主和属组,但会以ID号来表示

drwxrwxr-x 2 500 500 4096 Jul 23 10:36 /tmp/user1dir/

[root@Redhat6 /]# find / -user root -gid 500 #查找用户为root,gid为500

/tmp/user1dir

[root@Redhat6 /]# ls -ld /tmp/user1dir/

drwxrwxr-x 2 root 500 4096 Jul 23 10:36 /tmp/user1dir/

3)文件的类型

-type

f 文件

d 目录

b 块设备

c 字符设备

l 符合链接文件

p 命令管道文件

s 套接字文件

4)文件的大小

-size

#[k|M|G]:#表示数字,匹配的时候为模糊匹配

+#[k|M|G]:+#表示大于,匹配的结果大于#

-#[k|M|G] :-#表示小于,匹配的结果是小于#

5)文件修改时间

-atime [+|-]# :访问时间,默认为天,#表示#天的这个时间点,+#表示至少有#天没访问 , -#表示#天之内没访问

-mtime [+|-]# : 修改时间,#表示#天的这个时间点没有被修改,+#表示至少有#天没有修改 , -#表示#天之内没有修改

-ctime [+|-]# : 改变时间,#表示#天的这个时间点没有被改变,+#表示至少有#天没有被改变 , -#表示#天之内没有被改变

-amin [+|-]# : 时间为分钟,#表示#分钟的这个时间点没有被访问,+#表示至少有#分钟没有被访问 , -#表示#分钟之内没访问

-mmin [+|-]# :时间为分钟,#表示#分钟的这个时间点没有被修改,+#表示至少有#分钟没有被修改 , -#表示#分钟之内没有被修改

-cmin [+|-]# :时间为分钟,#表示#分钟的这个时间点没有被改变,+#表示至少有#分钟没有被改变 , -#表示#分钟之内没有被改变

6)文件权限

-perm [+|-] MODE

不带[+|-]表示精确权限匹配,

+表示任何一类用户的任何一位权限匹配

- 表示每类用户的每位权限都匹配

find在查找标准时支持组合查找条件,在使用组合查找条件时要考虑优先级,优先级为顺序为非→与→或,在组合参数是想改变优先级可以用()来提升优先级。

-a (and) 与默认是与

-o (or) 或

-not,! 非

find的处理动作可以是:

-print 默认为输出

-ls 显示查找到的文件的详细信息

-ok COMMAND /; 要确认

-exec COMMAND /; 其中COMMAND中有对查找到的文件进行操作时,用{}来替代查找到的 文件,/;表示使用-exec的结束符,是固定格式; 使用-exec来出来查找的文件时,还可以通过管道送给xargs命令来解决,xargs在执行命令时,如果有对文件进行操作则用-i选项,{}也表示要操作的文件。

复制代码

代码如下:

1、查找/var目录下属主为root并且属组为mail的所有文件;

find /var -user root -group mail

2、查找/usr目录下不属于root,bin,或student的文件;

find /usr -not /( -user root -o -user bin -o -user student /)

find /usr -not -user root -a -not -user bin -a -not -user student

3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;

find /etc -mtime -7 -a -not -user root -a -not -user student

find /etc -mtime -7 -a -not /( -user root -o -user student /)

4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root;

find / /( -nouser -o -nogroup /) -a -atime -1 -exec chown root:root {} /;

5、查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;

find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles /;

find /etc -size +1M >> /tmp/etc.largefiles

6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;

find /etc -not -perm +222

7、删除类型不是目录,而且没有属主的文件;

find / -not -type d -a -nouser -exec rm -f {} /;

find / -not -type d -a -nouser | xargs -i rm -f {}

本文出自 “技术之路---桀” 博客

linux find 文件夹类型,Linux find 强大的文件查找工具相关推荐

  1. winmerge多个文件夹生成html,功能强大的文件、文件夹比对工具-WinMerge使用教程

    您可能感兴趣的话题: WinMerge 核心提示:给大家介绍一款比对速度很快.比对功能相当强大的免费软件WinMerge,除了可以针对文件名称.文件内容与文件日期..等等细节来做比对之外,还可直接比对 ...

  2. linux复制压缩文件夹,[操作系统]linux中文件或者文件夹的基本操作(复制,移动,删除,查找,压缩)...

    [操作系统]linux中文件或者文件夹的基本操作(复制,移动,删除,查找,压缩) 0 2015-12-28 00:00:15 linux 文件(文件夹)的创建,复制,移动,重命名,删除基本命令 复制文 ...

  3. linux 如何打开文件夹权限,Linux文件和文件夹权限操作方法

    Linux 文件权限 首先来查看一下当前目录下的文件内容吧 ls -l    查看当前目录下的文件列表 ls -l xxx.xxx (xxx.xxx是文件名) 查看指定的文件 我们可以看到文件的权限, ...

  4. Linux 文件夹详情,linux使用命令创建文件夹以及里面的文件,详情介绍

    工作学习的过程中需要用到linux系统,今天需要使用命令创建目录并在目录中创建文件,然后添加自己的内容到文件中,我们一起看看这整个过程应该怎么做. 工具/材料 ubuntu16.04操作系统. 操作方 ...

  5. Windows中文件夹与linux中目录的区别

    如果你最开始使用的是 Windows 电脑,你很可能会使用"文件夹folder"这个术语.但当你换到 Linux 时,你会发现文件夹通常被称为"目录directory&q ...

  6. Linux之不删除指定文件夹,其他都删(文件和文件夹)

    例子1 查看当前文件夹下有哪些文件和子文件夹 我们看到俩个文件夹 和多个文件,我现在的需求是 只保留 public 这个文件夹 其他的文件夹和文件 统统都删除,怎么办呢? 只要一个命令 ls | gr ...

  7. linux递归创建文件夹_Python中并发请求创建文件夹带来的线程安全问题

    在我们日常写程序的过程中,免不了与文件系统打交道,各种开发语言都提供了与文件系统交互的指令函数,比如Python中的os模块,就提供了许多这样的指令函数,今天就以创建文件夹为例,来说一下,如果用的不当 ...

  8. linux上创建一文件夹命令,linux创建文件夹命令是什么

    linux创建文件夹命令是mkdir,语法为[mkdir (选项)(参数)],其中Z为设置安全上下文,当使用SELinux时有效,version显示版本信息. 本文操作环境:linux2.6.32系统 ...

  9. Linux文件夹乱码,inode号处理文件

    1.删除该文件或者文件夹 如果乱码中有带数字或者带字母的可以,可以匹配删除 如果全为乱码 ll  -i1   第一列数字即该乱码文件或者文件夹的额inode号 find -inum inode号 |x ...

最新文章

  1. 2022-2028年中国电子陶瓷行业深度调研及投资前景预测报告
  2. windows 10 下部署WCF 一些细节
  3. uniapp 鸿蒙,关于前端:uniapp项目安装运行操作手册
  4. 扩增子统计绘图3热图:样品相关分析,差异OTU
  5. python转行it好学吗-转行IT做后端开发,学python还是java?
  6. 台式计算机不用待机还是关机好,电脑应该选择“关机”还是“休眠”?不关机对电脑有损伤吗?...
  7. 深入理解select、poll和epoll及区别
  8. mega2560单片机开发_[MEGA DEAL] Ultimate Java开发和认证指南(59%折扣)
  9. c语言malloc和直接声明,问下关于malloc的声明问题
  10. go mysql rows.next_Go基础之--操作Mysql(二)
  11. 话题:什么是前端工程化?
  12. Spring入门(四):使用Maven管理Spring项目
  13. 前端智勇大闯关-第二季-第三题
  14. word中插入代码段
  15. 世界上到处都是有才华的穷人
  16. java打印字符串显示_JAVA调用系统打印机打印字符串
  17. ai画面怎么调大小_AI中怎么才能把图像等比例扩大或缩小尺寸?
  18. 天河超级计算机观后感,“天河一号”超级计算机读后感
  19. Spring、Mybatis、Spring MVC整合实例
  20. 通过通达信l2行情接口的逐笔委托中挖掘主力踪迹

热门文章

  1. puppeteer php,Puppeteer性能优化与执行速度提升
  2. 如何将pdf版的文书文字提取出来?
  3. React实现卡片横向无缝轮播效果(umi4)
  4. Photoshop---ps cc鼠标选择图层的时候,总是莫名自动跳到了其他图层
  5. 【雕虫小技第4篇】Scratch中更多模块功能怎么使用?
  6. wireshark 4本书
  7. 【Linux】vi命令使用详解(vim编辑器)
  8. Go语言学习之路(三)注释
  9. 从网易云音乐中总结banner设计
  10. 取得Google地图开发密钥Api key