加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

Linux中find呼吁的用法汇总

发布时间:2021-01-01 00:57:48 所属栏目:创业 来源:网络整理
导读:Linux体系中的 find 呼吁在查找文件时很是有效并且利便。它可以按照差异的前提来查找文件,譬喻权限、拥有者、修他日期/时刻、文件巨细等等。在这篇文章中,我们将进修怎样行使 find 呼吁以及它所提供的选项来查找文件。 在绝大大都Linux刊行版中,你都可以

perm 选项除了接管数值型参数外,同样接管 chmod 呼吁中的模式串。在下面的查找中,我们用另一种语法来取代数字。

$ find / -maxdepth 2 -perm /u=s 2>/dev/null
/bin/mount
/bin/su
/bin/ping6
/bin/fusermount
/bin/ping
/bin/umount
/sbin/mount.ecryptfs_private

留意:因为权限不敷,某些目次会拒接会见。呼吁中的 2>/dev/null 正是用于破除输出中的错误会见功效。

11. 查找只读文件

$ find /etc -maxdepth 1 -perm /u=r
/etc
/etc/thunderbird
/etc/brltty
/etc/dkms
/etc/phpmyadmin
... output truncated ...

12. 查找可执行文件

$ find /bin -maxdepth 2 -perm /a=x
/bin
/bin/preseed_command
/bin/mount
/bin/zfgrep
/bin/tempfile
... output truncated ...

三、基于文件拥有者和用户组的查找

13. 查找属于特定用户的文件

查找当前目次下,属于 bob 的文件。

$ find . -user bob
.
./abc.txt
./abc
./subdir
./subdir/how.php
./abc.php

在指定所属用户的同时,我们同样可以指定文件名。

$ find . -user bob -name '*.php'

很轻易看出,我们可以通过增进过滤前提来缩小查找文件的范畴。

14. 查找属于特定用户组的文件

# find /var/www -group developer

四、基于日期和时刻的查找

除了上面先容的查找前提外,其它一个很是棒的查找前提就是文件的修改和会见时刻(日期)。当我们想要找出哪些文件在某段时刻内被修改的时辰,这个查找前提将会很是利便。我们来看几个例子。

15. 查找已往的第 N 天被修悔改的文件

# find / -mtime 50

16. 查找已往的 N 天内被会见过的文件

# find / -atime -50

17. 查找某段时刻范畴内被修悔改内容的文件

# find / -mtime +50 -mtime -100

18. 查找已往的 N 分钟内状态产生改变的文件

$ find /home/bob -cmin -60

19. 查找已往的 1 小时内被修悔改内容的文件

# find / -mmin -60

20. 查找已往的 1 小时内被会见过的文件

# find / -amin -60

五、基于文件巨细的查找

21. 查找指定巨细的文件

$ find / -size 50M

22. 查找巨细在必然范畴内的文件

$ find / -size +50M -size -100M

23. 查找最大和最小的文件

我们可以将 find 呼吁与 ls 和 sort呼吁团结,从而找出最大或最小的文件。

下面的呼吁行使了 sort 呼吁的 -r 选项,也就是从大到小降序分列。颠末 head 呼吁的过滤之后,会表现当前目次和子目次下最大的5个文件。呼吁的执行进程必要一段时刻,查找的速率取决于文件的总数。

$ find . -type f -exec ls -s {} ; | sort -n -r | head 5

同样,我们可以去掉 sort 呼吁的 -r 选项来举办升序分列,从而表现出最小的5个文件。

$ find . -type f -exec ls -s {} ; | sort -n | head 5

24. 查找空文件和空目次

查找空文件:

# find /tmp -type f -empty

查找空目次:

$ find ~/ -type d -empty

很是简朴!

六、高级操纵

find 呼吁不只可以通过特定前提来查找文件,还可以对查找到的文件行使恣意linux呼吁举办操纵。下面给出两个例子。

25. 行使 ls 呼吁列出文件信息

我们行使 find 呼吁找到文件后,只能看到文件路径。假如想进一步查察文件信息,可以团结 ls 呼吁来实现。

$ find . -exec ls -ld {} ;
drwxrwxr-x 4 enlightened enlightened 4096 Aug 11 19:01 . 
-rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:25 ./abc.txt
drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:48 ./abc 
drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:26 ./subdir 
-rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:26 ./subdir/how.php
-rw-rw-r-- 1 enlightened enlightened 29 Aug 11 19:13 ./abc.php
-rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:25 ./cool.php

26. 删除找到的文件

下面的呼吁会删除 tmp 目次下扩展名为 .txt 的文件。

$ find /tmp -type f -name "*.txt" -exec rm -f {} ;

我们同样可以删除目次,只要把 -type 后头的 f 改为 d ,而且在 rm 呼吁后头加上 -r 即可。

$ find /tmp -type d -name "dirToRemove" -exec rm -r -f {} ;

本文由 Wray 翻译,略有编削。思量到原文有个体错误,以及为便于读者领略,故回收意译的方法。不敷之处请各人指出,感谢。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读