linuxfind

时间:2025-01-14 23:41:45编辑:阿奇

Linux find 命令详解

find 命令的基本结构如下: find [paths] [expression] [actions] find 命令接受一个或多个 路径 ( paths )作为搜索范围,并在该路径下 递归 地搜索。即检索完指定的目录后,还会对该目录下的子目录进行检索,以及子目录下的子目录。。。直到到达目录树底部。 默认情况下(不带任何搜索条件),find 命令会返回指定目录下的 所有文件 ,所以常常需要通过特定的 expression 对结果进行 筛选 。 find 命令默认的 action 是将所有检索结果打印至标准输出。可以通过自定义 action ,让 find 命令对搜索到的结果执行特定的操作。 这里先不做详细解释,简单地测试下 find 命令: find 命令中的 -name 选项可以根据文件名称进行检索( 区分大小写 )。如需要忽略文件名中的大小写,可以使用 -iname 选项。 -name 和 -iname 两个选项都支持 wildcards 。如: find /usr -name '*.txt' 查找 /usr 目录下所有文件名以 .txt 结尾的文件 find /usr -name '????' 查找 /usr 目录下所有文件名刚好为 4 个字符的文件 有些时候,你需要在搜索时匹配某个文件或目录的 完整路径 ,而不仅仅是匹配文件名。可以使用 -path 或 -ipath 选项。 如查找 /usr 下所有文件名以 .txt 结尾的文件或目录,且该文件的父目录必须是 src 。可以使用以下命令: find /usr -path '*/src/*.txt' 如果只想搜索得到文件 或 目录,即不想它们同时出现在结果中。可以使用 -type 选项指定文件类型。 -type 选项最常用的参数如下: find /usr -type d -name 'python*' 检索 /usr 下所有文件名以 python 开头的 目录 find 命令支持 -empty 选项用来检索 为空 的文件或目录。空文件即文件里没有任何内容,空目录即目录中没有任何文件或子目录。 find ~ -type d -empty 检索用户主目录下所有的空目录 find 命令也允许用户对当前的匹配条件进行 “反义” (类似于 逻辑非 操作)。 如需要检索 /usr 下所有文件名 不 以 .txt 为后缀的文件。可以使用以下命令: find /usr -type f ! -name '*.txt' 也可以“翻转”任何其他的筛选条件,如: find /usr -type f ! -empty 检索 /usr 下所有内容不为空的文件 为了检索归属于特定用户的文件或目录,可以使用 -user 选项。 find / -type f -user starky 检索根目录下所有属主为 starky 的文件 类似于 -user 选项, -group 选项则可以根据文件或目录的 属组 进行检索。 有些时候,需要根据文件创建或修改的时间进行检索。 Linux 系统中,与文件相关联的时间参数有以下三种: 与此对应的是 find 命令中的 -mtime , -atime 和 -ctime 三个选项。 这三个选项的使用遵循以下示例中的规则: find /usr -type f -mtime 2 检索 /usr 下两天前被修改过的文件 如果觉得 -mtime 等选项以 天 为单位时间有点长,还可以使用 -mmin , -amin , -cmin 三个选项: find /usr -type f -mtime +50 -mtime -100 检索 /usr 下 50 到 100 天之前修改过的文件 find /usr -type f -mtime 2 -amin 5 检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件 -size 选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……)。 表示文件大小的单位由以下字符组成: 另外,还可以使用 + 或 - 符号表示 大于 或 小于 当前条件。 find / -size +1G 检索文件大小高于 1 GB 的文件 find 命令可以使用 -perm 选项以文件权限为依据进行搜索。 如需要检索 /usr 目录下权限为 rwxr-xr-x 的文件,可以使用以下命令: find /usr -perm u=rwx,g=rx,o=rx 搜索 /usr 目录下所有权限为 r-xr-xr-x (即系统中的所有用户都只有读写权限)的文件和目录,可以使用以下命令: find /usr -perm a=rx 很多时候,我们只想匹配文件权限的一个 子集 。比如,检索可以直接被任何用户执行的文件,即只关心文件的执行权限,而不用管其读写权限是什么。 上述的需求可以通过以下命令实现: find / -type f -perm /a=x 其中 a=x 前面的 / 符号即用来表示只匹配权限的某个子集(执行权限),而不用关心其他权限的具体设置。 -perm 选项也支持数字形式的文件权限标记。 find /usr -perm 644 搜索 /usr 目录下权限为 644 (即 rwxr-xr-x )的文件 find 命令默认是以 递归 的方式检索项目的,这有时候会导致得到的结果数量非常巨大。可以使用 -maxdepth 限制 find 命令递归的层数。 find / -maxdepth 3 搜索时向下递归的层数最大为 3 在之前的例子中有出现多个搜索条件的 组合 以及对某个搜索条件的 反转 。 实际上 find 命令支持 “and” 和 “or” 两种逻辑运算,对应的命令选项分别是 -a 和 -o 。通过这两个选项可以对搜索条件进行更复杂的组合。 此外还可以使用 小括号 对搜索条件进行 分组 。注意 find 命令中的小括号常需要用 单引号 包裹起来。因小括号在 Shell 中有特殊的含义。 如检索 /usr 下文件名以 python 开头且类型为目录的文件 find /usr -type d -name 'python*' 该命令等同于: find /usr -type d -a -name 'python*' 更复杂的组合形式如: find / '(' -mmin -5 -o -mtime +50 ')' -a -type f -delete 选项可以用来删除搜索到的文件和目录。 如删除 home 目录下所有的空目录: find ~ -type d -empty -delete -exec 选项可以对搜索到的结果执行特定的命令。 如需要将 home 目录下所有的 MP3 音频文件复制到移动存储设备(假设路径是 /media/MyDrive ),可使用下面的命令: find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ';' 其中的 大括号 ( {} )作为检索到的文件的 占位符 ,而分号( ; )作为命令结束的标志。因为分号是 Shell 中有特殊含义的符号,所以需要使用单引号括起来。 每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的 {} ,然后执行 -exec 后面的命令一次。 另一个很重要的用法是,在多个文件中检索某个指定的字符串。 如在用户主目录下的所有文件中检索字符串 hello ,可以使用如下命令: find ~ -type f -exec grep -l hello {} ';' 创建 Gzip 格式的压缩文件的命令为: tar -czvf filename.tar.gz 现在假设需要将用户主目录下所有的 MP3 文件添加到压缩包 music.tar.gz 中,直观的感觉是,其命令应为如下形式: find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ';' 实际情况是,这样得到的 music.tar.gz 其实只包含一个 MP3 文件。 原因是 find 命令 每次 发现一个音频文件,都会再执行一次 -exec 选项后面的压缩命令。导致先前生成的压缩包被覆盖。 可以先让 find 命令检索出所有符合条件的音频文件,再将得到的 文件列表 传递给后面的压缩命令。完整的命令如下: find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} + 如果想浏览搜索到的文件(目录)的详细信息(如权限和大小等),可以直接使用 -ls 选项。 find / -type file -size +1G -ls 浏览所有 1G 以上大小的文件的详细信息 A Guide to the Linux “Find” Command find 命令手册 : man find

linux操作系统利用find 命令如何查找某个目录的位置

1、linux命令如果记不得,可以使用man命令来查看某个命令的使用。但对应初学者往往看不懂或者不知道什么场景下使用2、输入find -name *history,意思是查询当前目录及子目录下所有以history结尾的文件3、输入find -name mysql*,意思是查询当前目录及子目录下所有以mysql开头的文件4、输入find -name mysql* -o -name *history,中间加个-o表示或的意思,就是以mysql开头或history结尾的文件5、上面是例子没有搜索目录,默认是当前目录下,可以加上目录位置来指定特地的目录下搜索6、有时候经常会需要查询最近10分钟修改过的文件,则可以输入find -mmin -10命令来查询7、最后介绍下,在系统磁盘不足的情况下,需要清理大的垃圾临时文件时,如搜索大于100M的文件,find -type f -size +100M -print0 | xargs -0 du -h,结果如图所示扩展资料Linux简介:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。参考资料来源:百度百科:Linux简介

linux中find命令的使用方法有哪些?

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。语法格式:find path -option [ -print ] [ -exec -ok command ] {} \;参数说明:find根据下列规则判断path和expression,在命令列上第一个-(),!之前的部分为path,之后的部分是expression。如果path是空字串则使用目前路径,如果expression是空字串则使用-print为预设expression。expression中可使用的选项有二三十个,在此只介绍常用的部分。-mount,-xedv:只检查和指定目录在同一个文件系统下的文件,避免列出其他文件系统中的文件;-amin n:在过去n分钟内被读取过;-anewer file:比文件file更晚被读取过的文件;-atime n:在过去n天内被读取过的文件;-cmin n:在过去n分钟内被修改过;-cnewer file:比文件file更新的文件;-ctime n:在过去n天内被修改过的文件;-empty:空的文件-gid n or -group name:gid是n或是group名称是name;-ipath p,-path p:路径名称符合p的文件,ipath会忽略大小写;-name name,-iname name:文件名称符合name的文件,iname会忽略大小写;-size n:文件大小是n单位,b代表512位元组的区块,c表示字元数,k表示kilo bytes,w是二个位元组。-type c:文件类型是C的文件。

linux 使用find和locate命令查找/目录下所有已main开头的文件,并显示这些文件的内容!

1、打开shell连接抄工具,连接上服务器,pwd查看当前目录,一般进来默认在主目录下。2、通过命令:cd /切换到主目录下,然后pwd查看当前目录,并用ls可以查看当前目录下的文件及目录。3、假如要找一个nginx配置文件nginx.conf,那么可以通过find命令查找:find . -name 'nginx.conf'。4、假如不知道文件的具体名字只是模糊记得几个关键的单词,那么就可以通过模糊匹配去搜索:find 目录 -name '*nginx*' 查找即可。扩展资料:shutdown.exe -a取消关机。shutdown.exe -s 关机。shutdown.exe -f强行关闭应用程序。shutdown.exe -m \\计算机名 控制远程计算机。shutdown.exe -i显示图形用户界面,但必须是Shutdown的第一个参数。shutdown.exe -l注销当前用户。shutdown -r关机并重启。

上一篇:锐利度

下一篇:没有了