IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux Find命令的37个练习 -> 正文阅读

[系统运维]Linux Find命令的37个练习

Linux命令是在类Unix操作系统种最重要和最常用的命令行工具之一。find命令用于根据你为文件指定匹配参数的条件搜索和定位文件和目录。

find命令能够在各种情况下使用,如你通过权限,用户,组,文件,日期,大小以及其它可能的标准寻找文件。

通过这篇文件,我们用练习的形式分享日常find命令的经验和其用法。在这批文章种,我们将展示在Linux种最常用的35个Find命令示例。我们将这章从基础到高级用法划分find命令的5个部分。

第一部分:用名称查找文件的基本find命令

第二部分:根据文件权限查找文件

第三部分:基于所有者和所属组查找文件

第四部分:基于日期和时间查找文件和目录

第五部分:根据大小查找文件

第六部分:在Linux种查找多个文件名

第一部分:用名称查找文件的基本find命令

1、在当前目录中使用文件名查找文件

在当前工作目录种查找所有名称为rocky.txt的文件:

[root@rockygu ~]# find . -name rocky.txt
./rocky.txt

2、在Home目录下查找文件

用rock.txt名称在/home目录下查找所有文件

[root@rockygu ~]# find /home -name rocky.txt
/home/blctrl/rocky.txt

3、用名称和忽略大小写查找文件

在/home/目录中查找其名称为rocky.txt并且包含大小写字母的所有文件。

[root@rockygu ~]# find /home -iname rocky.txt
/home/blctrl/rocky.txt
/home/blctrl/Rocky.txt

4、使用名称查找目录

在/目录中查找其名称为Rocky的所有目录

[root@rockygu ~]# find / -type d -name Rocky
/home/blctrl/Rocky

?5、使用名称查找html文件

在当前工作目录中查找其名称为rock.html的所有html文件

[root@rockygu ~]# find . -type f -name rocky.html
./rocky.html

6、在目录中查找所有html文件

在一个目录中查找所有php文件

[root@rockygu ~]# find . -type f -name "*.html"
./index.html
./rocky.html
./login.html

?第二部分:根据文件权限查找文件

7、用777权限查找文件

查找权限是777的所有文件

[root@rockygu ~]# ls -l
total 2952
-rw-r--r-- 1 root root 3021419 Jun 14 15:32 base-7.0.4.1.tar.gz
-rw-r--r-- 1 root root       0 Jul  2 08:51 index.html
-rw-r--r-- 1 root root       0 Jul  2 08:51 login.html
-rwxrwxrwx 1 root root       0 Jul  2 08:56 perm.txt
-rw-r--r-- 1 root root       0 Jul  2 08:47 rocky.html
-rw-r--r-- 1 root root       0 Jul  2 08:29 rocky.txt
[root@rockygu ~]# find -type f -perm 777 -print
./perm.txt

8、查找没有777权限的文件

找到没有权限777的所有文件

[root@rockygu ~]# find . -type f ! -perm 777
./.bash_logout
./.bash_profile
./.bashrc
...
./rocky.txt
./rocky.html
./login.html

9、用权限644权限查找SGID文件

查找其权限设置为644的所有SGID位文件

[root@rockygu ~]# find / -perm 2644

10、用644权限查找粘滞位文件

找到其权限是644的所有设置了粘滞位的文件

[root@rockygu ~]# ls -l /tmp/
total 0
-rw-r--r-T 1 root root  0 Jul  2 09:22 rock.txt
[root@rockygu ~]# find /tmp -perm 1644
/tmp/rock.txt

?11、查找SUID文件

找到所有SUID设置的文件

[root@rockygu ~]# find . -perm /u=s
./suid.txt

12、查找SGID文件

找到所有SGID设置的文件

[root@rockygu test]# find . -perm /g=s
./suid.txt

13、查找属主有可读文件

查找所有属主可读文件

[root@rockygu test]# find . -perm /u=r
.
./perm.txt
./rocky.txt
./suid.txt
./index.html
./login.html
./rocky.html

14、查找可执行文件

查找所有可执行文件

[root@rockygu test]# find . -perm /u=x
.
./perm.txt

15、找到777权限的文件并且更改权限位644

找到所有777权限文件并且使用chmod命令设置权限位644。

[root@rockygu test]# ls -l perm.txt
[root@rockygu test]# find . -type f -perm 0777 -print -exec chmod 644 {} \;
./perm.txt
[root@rockygu test]# ls -l perm.txt
-rw-r--r-- 1 root root 0 Jul  2 08:56 perm.txt

16、查找权限777的目录并且更改其权限位755

查找777权限的目录并且使用chmod命令设置权限位644。

[root@rockygu test]# ls -dl fold/
drwxrwxrwx 2 root root 6 Jul  2 13:35 fold/
[root@rockygu test]# find . -type d -perm 777 -print -exec chmod 755 {} \;
./fold
[root@rockygu test]# ls -ld fold
drwxr-xr-x 2 root root 6 Jul  2 13:35 fold

17、查找并移除单个文件

查找一个名为rocky.txt的文件并且移除它。

[root@rockygu test]# find . -name 'rocky.txt'
./rocky.txt
[root@rockygu test]# find . -name 'rocky.txt' -exec rm -f {} \;
[root@rockygu test]# find . -name 'rocky.txt'

18、查找并移除多个文件

查找并移除诸如.hmtl的多个文件并且使用

[root@rockygu test]# find . -name "*.html"
./index.html
./login.html
./rocky.html
[root@rockygu test]# find . -name "*.html"  -exec rm -rf {} \;
[root@rockygu test]# find . -name "*.html"

19、查找所有空文件

查找在某个路径下所有空文件。

[root@rockygu test]# find /tmp -type f -empty
/tmp/rock.txt

20、找到所有空目录

查找当前路径下所有空目录。

[root@rockygu test]# find . -type d -empty
./fold

21、找到所有隐藏文件

要查找所有隐藏文件,使用以下命令。

[root@rockygu test]# find . -type f -name ".*"
./.hidden

第三部分:基于所有者和所属组查找文件

22、根据用户查找单个文件

要在home下查找名为rocky.txt属主位blctrl的所有文件或者所有文件

[root@rockygu home]# ls /home/blctrl/ -l
total 0
drwxrwxr-x 4 blctrl blctrl 45 Jun 20 08:52 EPICS
drwxr-xr-x 2 root   root    6 Jul  2 08:43 rocky
drwxr-xr-x 2 root   root    6 Jul  2 08:43 Rocky
-rw-r--r-- 1 blctrl blctrl  0 Jul  2 08:30 rocky.txt
-rw-r--r-- 1 root   root    0 Jul  2 08:35 Rocky.txt
[root@rockygu home]# find . -user blctrl -name rocky.txt
./blctrl/rocky.txt

23、根据用户查找所有文件

在/home目录下查找查找属于用户root的所有文件。

[root@rockygu home]# find . -user root
.
./blctrl/Rocky.txt
./blctrl/Rocky
./blctrl/rocky

?24、根据组查找所有文件

查找/home目录下属于组root的所有文件

[root@rockygu home]# find . -group root
.
./blctrl/Rocky.txt
./blctrl/Rocky
./blctrl/rocky

25、查找用户的特定文件

在/home目录下查找用户root的所有.txt文件

[root@rockygu home]# find . -user root -iname *.txt
./blctrl/Rocky.txt

第四部分:基于日期和时间查找文件和目录

26、查找前50天修改的文件

要找到50天前被修改的所有文件

# find . -mtime 50

27、查找前50天被访问的文件

要找到50天前被访问的文件

# find . atime 50

28、查找前50-100天被修改的文件

查找所有50天-100天前被修改的文件

# find . -mtime +50 -mtime -100

29、查找在前一个小时内更改的文件

查找在前1小时内被修改的所有文件

[root@rockygu home]# find . -cmin -60

30、查找在前一小时内被修改的文件

查找在前一小时内被更新的文件

[root@rockygu home]# find . -mmin -60

31、查找在前一小时内被访问的文件

[root@rockygu home]# find . -amin -60

第五部分:根据大小查找文件

?32、查找50MB文件

查找所有50MB文件,使用

[root@rockygu home]# find . -size 50M

33、查找大小在50MB和100MB之间的文件

查找大于50MB小于100MB的所有文件

[root@rockygu home]# find . -size +50M -size -100M

34、查找并且删除100MB文件

查找100MB文件并且使用单条命令删除它们

[root@rockygu home]# find . -size +100M -exec rm -f {} \;

35、查找特定的文件并且删除

查找所有大小超过10MB的.htmp文件并且使用单条命令删除它们:

[root@rockygu home]# find . -type f -name *.html -size +10M -exec rm {} \;

第六部分:在Linux种查找多个文件名

很多时候,我们受困于必须用不同扩展名搜索多个文件的情况,这可能已经发生在来自终端内的若干Linux用户。

有若干命令行工具,我们可以用它们定位或查找在文件系统上的工具,但用不同扩展名查找多个文件名或文件有时会棘手并且需要特定的命令。

在Linux文件系统上用于定位文件的许多工具之一是find工具并且在这里,我们练习一些使用find帮助一次定位多个文件的示例。

在我们深入实际命令前,我们看一下Linux find命令的介绍。

find工具的最简单和一般语法如下:

# find directory options [ expression ]

我们继续看一下在Linux中一些find命令的示例。?

36、假设你想要在当前目录中用.sh和.html文件扩展名查找所有文件,你通过运行以下命令做这件事:

[root@rockygu test]# ls
fold  guid.txt  perm.txt  rock.html  rocky.c  rocky.sh  suid.txt
[root@rockygu test]# find . -type f \( -name "*.sh" -o -name "*.html" \)
./rocky.sh
./rock.html

以上命令的解释:

  • . 表示当前目录
  • -type 选项用于指定文件类型并且我们在此搜索以f表示的常规文件
  • -name 选项在指定一种搜索模式,在这里,文件扩展名
  • -o 表示"或者"

推荐你把文件扩展名放在括号中并且在命令中使用反斜杠\转移字符。

37、查找以.sh, .txt和.c查找三种文件名,发出如下命令:

[root@rockygu test]# find . -type f \( -name "*.sh" -o -name "*.txt" -o -name "*.c" \)                              ./guid.txt
./perm.txt
./suid.txt
./rocky.sh
./rocky.c

当我们仔细观察以上所有命令,小技巧是在find命令中使用-o选项,它使你能够向搜索数组中添加更多文件名,并且也了解你正在搜索的文件名或文件。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 23:22:23  更:2022-07-04 23:24:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 16:43:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码