Bash find 命令

首页 / Shell/Bash / Bash find 命令

find命令用于寻找文件,会包括当前目录的所有下级目录。

如果不带任何参数,find文件会列出当前目录的所有文件,甚至还包括相对路径。如果把结果导入 sort 效果更好。

$ find | sort
.
./Makefile
./README
./build
./client.c
./client.h
./common.h
./project.c
./server.c
./server.h
./tests
./tests/suite1.pl
./tests/suite2.pl
./tests/suite3.pl
./tests/suite4.pl

如果想要 ls -l 样式的列表,只要在 find 后面加上 -ls。

$ find -ls

find 有它自己的一套复杂的过滤语句。下面列举的是一些最常用的你可以用以获取某些文件列表的过滤器:

要注意,上面提到的这些过滤器都是可以组合使用的,例如找出近两天内编辑过的 C 源码:

$ find -name '*.c' -mtime -2

默认情况下, find 对搜索结果所采取的动作只是简单地通过标准输出输出一个列表,然而其实还有其他一些有用的后续动作。

  • -ls —— 如前文,提供了一种类 ls -l 式的列表。
  • -delete —— 删除符合查找条件的文件。
  • -exec —— 对搜索结果里的每个文件都运行某个命令, {}会被替换成适当的文件名,并且命令用\;终结。
$ find -name '*.pl' -exec perl -c {} \;

你也可以使用+作为终止符来对所有结果运行一次命令。我还发现一个我经常使用的小技巧,就是用 find 生成一个文件列表,然后在 Vim 的垂直分窗中编辑:

$ find -name '*.c' -exec vim {} +

教程来源:网道(WangDoc.com)以及 Github 无私奉献

这一章《Bash find 命令》你学到了什么?做站不易,你的分享是对我们最大的支持,感谢!😊

相关文章

推荐系统三十六式 -〔刑无刀 - 40讲〕

数据结构与算法之美 -〔王争 - 80讲〕

JavaScript核心原理解析 -〔周爱民 - 28讲〕

性能优化高手课 -〔尉刚强 - 30讲〕

如何在 Pandas 中将类型为 interval[int64,right) 的列拆分为两...

自动克里金法和手动克里金法的不同结果

替换 dask map_partitions 中的现有列会发出警告

按圆桌选择顺序?

如何限制“resolveJsonModule”的范围?

如何将 Google Apps 脚本项目中的 CSS 文件应用于 doPost() 返回...

视频推荐〔Shell/Bash - 01_为什么学习shell〕

更多视频 »