linux命令f linux命令find用法

Linux常用命令详解 | find find 命令的基本结构如下:
find 命令手册 : man find
find 命令中的-name选项可以根据文件名称进行检索( 区分大小写 ) 。如需要忽略文件名中的大小写,可以使用-iname选项 。
-name和-iname两个选项都支持wildcards。如:
例1:查找 /usr 目录下所有文件名以.txt结尾的文件
例2:查找 /usr 目录下所有文件名刚好为 4 个字符的文件
例3:查以大写字母开头的文件
例4:查以两个小写字母和两个数字开头的txt文件
类似的还有:
-lname -ilname
-path -ipath
-regx -iregx
有些时候,你需要在搜索时匹配某个文件或目录的 完整路径,而不仅仅是匹配文件名 。可以使用-path或-ipath选项 。
例1:如查找 /usr 下所有文件名以.txt结尾的文件或目录,且该文件的父目录必须是src。可以使用以下命令:
例2:在当前目录除aa之外的子目录内搜索 txt文件
例3:在当前目录,不再子目录中 , 查找txt文件
如果只想搜索得到文件 或 目录,即不想它们同时出现在结果中 。可以使用-type选项指定文件类型 。
-type选项最常用的参数如下:
例:检索 /usr 下所有文件名以python开头的目录
find 命令支持-empty选项用来检索 为空 的文件或目录 。空文件即文件里没有任何内容,空目录即目录中没有任何文件或子目录 。
例:检索用户主目录下所有的空目录
find 命令也允许用户对当前的匹配条件进行 “反义” (类似于 逻辑非 操作) 。
如需要检索 /usr 下所有文件名 不 以.txt为后缀的文件 。可以使用以下命令:
也可以“翻转”任何其他的筛选条件,如:检索 /usr 下所有内容不为空的文件
为了检索归属于特定用户的文件或目录,可以使用-user选项 。
例:检索根目录下所有属主为 starky 的文件
类似于-user 选项 , -group选项则可以根据文件或目录的 属组 进行检索 。
有些时候,需要根据文件创建或修改的时间进行检索 。
Linux 系统中,与文件相关联的时间参数有以下三种:
与此对应的是 find 命令中的-mtime , -atime和-ctime三个选项 。
这三个选项的使用遵循以下示例中的规则:
检索 /usr 下两天前被修改过的文件
如果觉得-mtime等选项以 天 为单位时间有点长,还可以使用-mmin , -amin ,-cmin三个选项 。
查找比 aa.txt新 的文件
查找比 aa.txt旧 的文件
查找比aa.txt新,比bb.txt旧的文件
-size选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……) 。
表示文件大小的单位由以下字符组成:
另外,还可以使用或-符号表示 大于 或 小于 当前条件 。
检索文件大小高于 1 GB 的文件
find 命令可以使用-perm选项以文件权限为依据进行搜索 。
9.1使用符号形式
例1:如需要检索 /usr 目录下权限为rwxr-xr-x的文件,可以使用以下命令:
例2:搜索 /usr 目录下所有权限为r-xr-xr-x (即系统中的所有用户都只有读写权限)的文件和目录,可以使用以下命令:
很多时候,我们只想匹配文件权限的一个 子集。比如,检索可以直接被任何用户执行的文件 , 即只关心文件的执行权限 , 而不用管其读写权限是什么 。
上述的需求可以通过以下命令实现:
其中a=x前面的/符号即用来表示只匹配权限的某个子集(执行权限),而不用关心其他权限的具体设置 。
9.2使用数字形式
例如:搜索 /usr 目录下权限为644 (即rwxr-xr-x )的文件
find 命令默认是以 递归 的方式检索项目的,这有时候会导致得到的结果数量非常巨大 。可以使用-maxdepth限制 find 命令递归的层数 。
例如:搜索时向下递归的层数最大为 3
在之前的例子中有出现多个搜索条件的 组合 以及对某个搜索条件的 反转。
实际上 find 命令支持“and”和“or”两种逻辑运算,对应的命令选项分别是-a和-o。通过这两个选项可以对搜索条件进行更复杂的组合 。
此外还可以使用 小括号 对搜索条件进行 分组。注意find命令中的小括号常需要用 单引号 包裹起来 。因小括号在 Shell 中有特殊的含义 。
如检索 /usr 下文件名以python开头且类型为目录的文件
该命令等同于:
更复杂的组合形式如:
例4:在除dir0及子目录以外的目录下查找txt后缀文件
说明:-a 应该是and的缩写,意思是逻辑运算符‘与’(); -o应该是or的缩写,意思是逻辑运算符‘或’(||), -not 表示非.
命令行的意思是:如果目录dir0存在(即-a左边为真),则求-prune的值,-prune 返回真,‘与’逻辑表达式为真(即-path './dir0*' -a -prune 为真),find命令将在除这个目录以外的目录下查找txt后缀文件并打印出来;如果目录dir0不存在(即-a左边为假),则不求值-prune,‘与’逻辑表达式为假 , 则在当前目录下查找所有txt后缀文件 。
-delete选项可以用来删除搜索到的文件和目录 。
例如:删除 home 目录下所有的空目录:
-exec选项可以对搜索到的结果执行执行该参数所给出的shell命令 。形式为 command {} \;,注意{}与\;之间有空格。每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的{} ,然后执行-exec后面的命令一次 。
例1:如需要将 home 目录下所有的 MP3 音频文件复制到移动存储设备(假设路径是/media/MyDrive ),可使用下面的命令:
其中的 大括号 ( {} )作为检索到的文件的占位符,而分号(; )作为命令结束的标志 。因为分号是 Shell 中有特殊含义的符号,所以需要使用单引号括起来或前面加上转义符 \。
例2:查看当前目录下的所有普通文件,并在 - exec 选项中使用 ls -l 命令将它们列出
例3:在多个文件中检索某个指定的字符串 。如在用户主目录下的所有文件中检索字符串hello,可以使用如下命令:
创建 Gzip 格式的压缩文件的命令为:
现在假设需要将用户主目录下所有的 MP3 文件添加到压缩包music.tar.gz中,直观的感觉是,其命令应为如下形式:
实际情况是,这样得到的music.tar.gz其实只包含一个 MP3 文件 。原因是 find 命令 每次 发现一个音频文件 , 都会再执行一次-exec选项后面的压缩命令 。导致先前生成的压缩包被覆盖 。
可以先让 find 命令检索出所有符合条件的音频文件,再将得到的 文件列表 传递给后面的压缩命令 。完整的命令如下:
如果想浏览搜索到的文件(目录)的详细信息(如权限和大小等),可以直接使用-ls选项 。
例如:浏览所有 1G 以上大小的文件的详细信息
与exec作用相同,区别在于,在执行命令之前,都会给出提示 , 让用户确认是否执行
与 exec 作用相同 ,起承接作用 。区别在于 |xargs 主要用于承接删除操作 ,而 -exec 都可用 如复制、移动、重命名等
例1:查找以ap或may开头的文件
例2:查硬连接数大于2的文件或目录
例3:查找含特定字符串的文件 。查找当前目录下含有"the string you want find…"字符串的文件:
例4:从根目录开始查tmpfile,一旦查到马上删除
例5:如何用find查找某一天更改的文件?可以使用这一行命令来实现:
A Guide to the Linux “Find” Command
linux find的用法1、按名称或正则表达式查找文件
要按特定名称搜索文件linux命令f,命令如下:
find . -name test.txt
如何查找所有格式为pdf的书籍?使用正则表达式:
find ./yang/books -name "*.pdf"
默认情况下 , find命令会搜索常规文件 , 但最好进行指定(-type f)以使所有内容更清晰:
find ./yang/books -type f -name "*.pdf"
2、查找不同类型的文件
除linux命令f了搜索常规文件外 , 我们还可以通过指定-type选项来搜索其他类型的文件,例如目录:
find . -type d -name "yang*"
或者符号链接:
find . -type l -name "yang*"
3、按指定的时间戳查找文件
要搜索atime超过一年的文件,我们可以编写如下命令:
find . -type f -atime365
如果我们需要查找mtime正好是5天前的文件 , 请不要包含 , 因为它的意思是“大于” 。
find . -type f -mtime 5
显然, 表示“大于”,-表示“小于” 。所以我们可以搜索ctime在5~10天前的文件:
find . -type f -ctime5 -ctime -10
4、按大小查找文件
类似于按时间戳查找文件,表示“大于”,-表示“小于” 。例如,要查找大小为10MB~1GB的文件:
find . -type f -size10M -size -1G
5、按权限查找文件
合理控制文件的权限是Linux管理员的一项重要任务 。find命令的-perm选项可以帮助我们按指定权限查找文件:
find . -type f -perm 777
6、按所有权查找文件
例如 , 以下命令将查找所有属于yang的文件:
find -type f -user yang
7、在找到文件后执行命令
在大多数情况下,我们希望在找到我们需要的文件后进行后续操作 。例如将其删除,或检查它们的详细信息等等 。-exec命令使这些所有事情变得更加容易 。
现在,要了解如何使用它,让我们回到之前提到的面试问题:
find . -type f -atime365 -exec rm -rf {} \;
上述命令在-exec选项后是rm -rf,其用于删除文件 。{}是用于查找结果的占位符 。
注意:占位符{}非常重要,尤其是在您想删除文件时 。因为,如果您不使用它,该命令将对所有文件执行(而不是您刚刚通过find命令找到的文件) 。
linux中find命令的使用详解常用命令
find(目录)[-type d | f](文件夹 | 文件)-name(名称,可使用正则表达式)
find/root-name "*core"
find /root -type d -name "*core"文件夹
find /root -type f -name "*core"文件
find /root -type f -path"*core"路径
find /root-name "*core"-delete查到后删除
find /root -size20M (-20M)大于20M(小于20M)
find /root -name "*core"-execls{} ;对查找后的文件执行ls操作
壹——主要内容
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 -size100M-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 命令详解 find 命令linux命令f的基本结构如下:
find [paths] [expression] [actions]
find 命令接受一个或多个 路径 ( paths )作为搜索范围linux命令f , 并在该路径下 递归 地搜索 。即检索完指定的目录后linux命令f,还会对该目录下的子目录进行检索 , 以及子目录下的子目录 。。。直到到达目录树底部 。
默认情况下(不带任何搜索条件) , 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 -mtime50 -mtime -100检索 /usr 下 50 到 100 天之前修改过的文件
find /usr -type f -mtime 2 -amin 5检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件
-size选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……) 。
表示文件大小的单位由以下字符组成:
另外 , 还可以使用或-符号表示 大于 或 小于 当前条件 。
find / -size1G检索文件大小高于 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 -mtime50 ')' -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 list of files
现在假设需要将用户主目录下所有的 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 -size1G -ls浏览所有 1G 以上大小的文件的详细信息
A Guide to the Linux “Find” Command
find 命令手册 : man find
【linux命令f linux命令find用法】关于linux命令f和linux命令find用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读