您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

通过26个实例彻底掌握 linux find 命令的使用

时间:2022-11-27 15:33:44  来源:今日头条  作者:鸠摩智首席音效师

 

find 命令有什么用 ?

find 命令在 linux 和 UNIX 系统中用于查找文件和目录,并可对其执行后续操作。

在 find 命令的帮助下,系统管理员可以根据一些搜索条件查找所需的文件。我们可以使用单个或组合多个标准,然后可以对获得的结果执行操作。可选搜索条件:文件名称、目录名称、创建日期、修改日期、属主、权限。

find 命令语法格式:

$ find <path> {file-or-directory-name} <options> <action-on-result>

<action-on-result> 可选项:

  • – delete : 删除文件或目录
  • -exec command {}; : 根据 find 命令的结果执行命令
  • -ok command : 它将运行与 -exec 相同的命令,但它将在实际执行之前提示

(1) 查找当前工作目录下的所有文件和目录

若要只查找目录,请运行

$ find . -type d

若要只查找文件,请运行

$ find . -type f

(2) 列出特定目录下的所有文件

假设我们要列出 /home/linuxtechi/Downlods 目录下的所有文件和目录,运行

$ find /home/linuxtechi/Downloads

如果只查找文件,请运行

$ find /home/linuxtechi/Downloads -type f

如果只查找目录,请运行

$ find /home/linuxtechi/Downloads -type d

 

(3) 从目录中按文件名查找文件

要在特定目录中按名称查找文件,请运行

$ sudo find /home -type f -name cleanup.sh

上面的命令将在 /home 文件夹中查找 cleanup.sh 文件。我们还可以在 /var/log 目录中查找扩展名为 .log 的所有文件,运行

$ sudo find /var/log -type f -name *.log

 

(4) 在多个目录中查找文件

假设我们想在 /home 和 /root 文件夹中找到 .sh 扩展名的文件,请运行

$ sudo find /home /root -type f -name '*.sh'

 

(5) 忽略文件名大小写

为了查找文件名不受大小写影响,我们可以在 find 命令中使用 -iname 选项

$ sudo find /home -type f -iname CleanUP.SH
/home/linuxtechi/automation/cleanup.sh
$

(6) 查找除上述类型之外的所有文件类型

假设我们要查找所有不是上述类型的文件,为此可以在 find 命令中使用 -not 选项,如下所示

$ sudo find /home -type f -not -name '*.mp3'

(7) 使用多个条件查找文件

我们还可以组合多个条件来使用正则表达式搜索文件。假设我们想在主目录中搜索扩展名为 .sh 和 .mp3 的文件,运行

$ find $HOME -regex ".*.(sh|mp3)$"

 

(8) 使用 OR 条件查找文件

我们还可以组合多个搜索条件,然后使用 OR 操作符根据一个条件中的任何一个条件的满足来查找文件

$ find $HOME -name "*.sh" -o -name "jumpscripts"
/home/linuxtechi/automation/cleanup.sh
/home/linuxtechi/dumpdata.sh
$

9) 根据权限查找文件

要根据权限查找文件,请在查找命令中使用 - perm 选项。

例如在 /home 目录中查找具有 0777 权限的所有文件,运行

$ sudo find /home -type f -perm 0777

在用户目录查找所有可执行文件

$ find $HOME -type f -perm /a+x

(10) 查找所以隐藏文件

要搜索用户主目录中的所有隐藏文件,请运行命令

$ find $HOME -type f -name ".*"

(11) 找到所有具有 SGID 的文件

要定位所有具有 SGID 位的文件,我们可以使用

$ sudo find / -perm /g=s

(12) 找到所有带有 SUID 的文件

要定位所有 SUID 位的文件,运行

$ sudo find / -perm /u=s

(13) 查找所有可读但没有执行权限的文件

若要只查找所有人都可读但任何人都不能执行的文件,请运行

$ find $HOME -perm -a+r ! -perm /a+x

(14) 搜索几种文件类型

在一个查找命令中,我们可以搜索多种文件类型

$ find $HOME -type f,d,l

(15) 查找用户拥有的所有文件

To locate all the file that are owned by a particular user in /home directory, run following command,

要找到 /home 目录中属于特定用户的所有文件,请运行以下命令

$ sudo find $HOME -user linuxtechi

(16) 找到一个组拥有的所有文件

下面的命令将搜索 Apache 组拥有的所有文件。

$ sudo find / -group apache

(17) 按文件大小查找所有文件

Use ‘-size’ option in find command to search files based on the size.
Run following command to find all files whose size is exactly 50MB.

使用 -size 选项根据文件大小进行搜索

查找等于 50MB 的文件

$ find $HOME -size 50M
/home/linuxtechi/dbstuff
$

查找大于 50MB 的文件

$ find $HOME -size +50M

查找小于 50MB 的文件

$ find $HOME -size -50M

查找大小在 40MB 到 500MB 之间的文件

$ find $HOME -size +40M -size -500M

(18) 不下行目录到其他文件系统

-xdev 选项列出了另一个文件系统中的挂载点或分区,但它不会向下查找它们。

下面的命令将在 / 目录中搜索大于 100MB 的所有文件,排除其他挂载的文件系统,重定向错误消息到 /dev /null

$ find / -xdev -size +100M 2>/dev/null

 

(19) 查找 N 天前修改过的文件

假设我们想要定位 10 天前修改过的所有文件。我们可以使用 -mtime 选项来实现这一点

$ sudo find / -mtime 10 2>/dev/null

(20) 找出 N 天前被访问过的文件

假设我们想要定位 10 天前被访问过的所有文件。我们可以使用 -atime 选项来实现这一点

$ sudo find / -atime 30 2>/dev/null

(21) 找到所有的空文件和目录

要在用户主目录中搜索所有空文件,请运行

$ find $HOME -type f -empty
or 
$ find $HOME -type f -size 0

类似地,定位所有空目录

$ find $HOME -type d -empty

(22) 搜索和删除文件

使用 find 命令,我们在单个命令中搜索和删除文件,-delete 选项可以删除文件。

在下面的例子中,我们正在从用户的主目录中搜索并删除 mp3 文件

$ find $HOME -type f -name "*.mp3" -delete

 

注意: 上面是破坏性命令,执行它时要小心。

(23) 查找最大和最小的文件

To find largest and smallest file, we will combine sort command with find command & if we further want to list top three of those largest files, we will combine head

为了找到最大和最小的文件,我们将结合 sort 命令和 find 命令,如果我们进一步想列出最大文件中的前三个,我们将结合 head 命令列出用户主目录中前三个文件

$ find $HOME -type f -exec ls -s {} ; | sort -n -r | head -3
51200 /home/linuxtechi/dbstuff
8276 /home/linuxtechi/.cache/gnome-software/Appstream/components.xmlb
2764 /home/linuxtechi/.local/share/gnome-photos/tracker3/private/meta.db-wal
$

我们同样可以在用户的主目录中找到最小的文件

$ find $HOME -type f -exec ls -s {} ; | sort -n | head -3

(24) 找到所有日志文件并将它们重定向到一个文件

To run command on find command result use -exec option, it’s syntax given below,

要在查找结果上运行命令,使用 -exec 选项,其语法如下所示

$ find -exec {} ;

以下命令将找到所有文件,并将其名称重定向到 /tmp/logsfiles.txt

$ sudo find /var -type f -name '*.log' -exec ls -lah {} ; > /tmp/logfiles.txt

 

(25) 搜索文件并更改其权限

假设我们想要搜索权限为 777 的所有文件,并将其权限更改为 644

$ find $HOME -type f -perm 777 -exec chmod 644 {} ;

(26) 从文件中搜索文本

Let’s assume we want to search error word in all log files, run following command

假设我们要在所有日志文件中搜索带有 error 关键字的文件,运行以下命令

$ sudo find /var -type f -name '*.log' -exec grep -i 'error' {} ;

在上面的命令中,我们结合了 find 和 grep 命令来完成任务。



Tags:linux   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08  Search: linux  点击:(8)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25  Search: linux  点击:(15)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27  Search: linux  点击:(53)  评论:(0)  加入收藏
2024 年 Linux 和开源的六大趋势预测
让我们尝试预测未来吧!新的一年快乐,朋友们 ✨2024 年的钟声已经敲过,我们有必要去预见一下将塑造本年度的各种潮流。我们不能预见未来,所以无法精确预知将会发生什么,但根据目前...【详细内容】
2024-01-09  Search: linux  点击:(95)  评论:(0)  加入收藏
Linux 启动过程详解
第 1 步 - 当我们打开电源时,BIOS(基本输入/输出系统)或UEFI(统一可扩展固件接口)固件从非易失性存储器加载,并执行POST(开机自检)。第 2 步 - BIOS/UEFI 检测连接到系统的设备,包括...【详细内容】
2024-01-02  Search: linux  点击:(92)  评论:(0)  加入收藏
对 Bash 感到厌倦?教你如何在 Linux 中更改默认 Shell
Bash 并不是唯一可供选择的 Shell。还存在数量众多的 Shell,它们都有一些独特的特性,例如 Zsh、Fish、Ksh 和 Xonsh。在你的系统中,你可以同时安装多个 Shell。要想将另一个 Sh...【详细内容】
2023-12-14  Search: linux  点击:(205)  评论:(0)  加入收藏
如何解决Linux 服务器性能问题?
Linux 服务器以其稳定性和可靠性而闻名,但与任何系统一样,它们有时也会遇到性能问题。当您的 Linux 服务器的性能开始下降时,必须及时解决问题以确保应用程序和服务的顺利运行...【详细内容】
2023-12-14  Search: linux  点击:(239)  评论:(0)  加入收藏
适用于 Linux 的 LibreOffice 替代品
LibreOffice 是一个出色的开源文档套件。它预装在许多 Linux 发行版上,应该足以满足大多数用户的需求。然而,有些人可能不喜欢它的用户界面和功能集。某些用户可能想尝试其他...【详细内容】
2023-11-30  Search: linux  点击:(127)  评论:(0)  加入收藏
十个最佳免费 Linux 防火墙工具
概述防火墙是保护网络边界的关键。防火墙会阻止敏感端口并过滤传入和传出流量,以阻止恶意连接并确保不会发生未经请求的数据交换。在自由开源软件的世界里,有很多防火墙解决方...【详细内容】
2023-11-28  Search: linux  点击:(175)  评论:(0)  加入收藏
Linux 内核调度器源码解析:从调度入口到挑选下一个进程
在Linux内核中,调度器(scheduler)扮演着至关重要的角色,决定了哪个进程将获得CPU的执行时间。本文将深入剖析内核中调度器的代码实现,从入口函数开始,一步步分析如何选择下一个要...【详细内容】
2023-11-27  Search: linux  点击:(274)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(8)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(24)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(16)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(15)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(59)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(53)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(58)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(84)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(72)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(90)  评论:(0)  加入收藏
站内最新
站内热门
站内头条