linux中的查找命令

bluecarrot 2020-04-20

关于查找更详细的内容,参见《shell编程和Unix命令》

1. find命令

find命令的一般形式:

find pathname -options [-print -exec -ok]
参数说明
pathnamefind查找目录。. 来表示当前目录,用 / 来表示系统根目录
-optionfind查找选项,也就是find根据什么东西来查找
-print将匹配的文件输出到标准输出
-exec执行shell命令。相应命令形式为‘command‘{} \; 注意{}和\; 之间的空格
-ok以更为安全的模式来执行shell命令

1.1 -name

按照文件名查找。最常用的用法。例如:

在当前目录及子目录查找所有txt文件并打印出来,可以用:

find . -name "*.txt" -print

1.2 使用exec来执行shell命令

匹配到文件对其进行某些操作。例如:

find . -type f -exec ls -l {} \;

上面的例子,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。

1.3 xargs

有些系统对能够传递给exec的命令长度有限制,有可能会出现溢出错误。xargs用处就在此。

例子1:在整个系统中查找内存信息转储文件(core dump),然后把结果保存到/tmp/core.log文件中

find . -name "core" -print | xargs echo "" > /tmp/core.log

例子2:用grep命令在所有普通文件中搜索device这个词

find / -type f -print | xargs grep "device"


2. grep

对文本文件进行模式查找,通常用来在文件中查找字符串。在grep命令中输入字符串参数时,需要使用双引号。

选项:

-n 显示匹配行及行号。 最实用的这个选项

例子:在当前目录下所有 .c 文件中查找字符串“sort”并显示行号

grep -n "sort" *.c

相关推荐

老甘的可读区 / 0评论 2020-02-23