Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINUX:如何查找从根开始的文件(grep)?_Linux_Terminal_Grep_Root - Fatal编程技术网

LINUX:如何查找从根开始的文件(grep)?

LINUX:如何查找从根开始的文件(grep)?,linux,terminal,grep,root,Linux,Terminal,Grep,Root,我试图在/usr及其子目录中找到所有包含“main”的c文件,但我不知道如何让它从根开始搜索。我假设当前目录不在usr中或是usr。 所以我试过了 grep-r“main”/usr/*.c 有什么建议吗?谢谢 find /usr -name "*.c" -exec grep -l main {} \; 是一个简单的版本,它分别greps/usr中的每个.c文件并输出其名称 您可以通过使用xargs减少对grep的调用来改进它: find /usr -name "*.c" | xargs gre

我试图在/usr及其子目录中找到所有包含“main”的c文件,但我不知道如何让它从根开始搜索。我假设当前目录不在usr中或是usr。 所以我试过了 grep-r“main”/usr/*.c 有什么建议吗?谢谢

find /usr -name "*.c" -exec grep -l main {} \;
是一个简单的版本,它分别greps/usr中的每个.c文件并输出其名称

您可以通过使用
xargs
减少对grep的调用来改进它:

find /usr -name "*.c" | xargs grep -l main

如果您安装了(在Debian/Ubuntu中称为ack grep),您只需从/usr运行
ack-l--cc main即可得到结果。

您还可以执行
查找-exec grep-l main()+
。使用
+
而不是
\
告诉find使用多个文件名运行命令,类似于xargs的工作方式。Nice:我不知道这个技巧!
WHERETOLOOK=/
find $WHERETOLOOK -type f -iname "*.c" | xargs grep main

EXAMPLES:

$ find / -type f -iname "*.txt" 2> /dev/null | xargs grep INST | head -n 3
grep: /opt/android-sdk/SDK/opt/sun-jdk-1.6.0.33/db/demo/programs/vtis/data/svn_log.txt:Adding message for DATA_SQLDATA_READ_INSTANTIATION_EXCEPTION.
/opt/sun-jdk-1.6.0.33/db/demo/programs/vtis/data/svn_log.txt:        - When a log record is encountered, set newFileStart to INVALID_LOG_INSTANT.
/opt/android-sdk/platforms/android-10/images/NOTICE.txt:DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA

$ find /usr/share/ -type f -iname "*.txt" | xargs grep INST | head -n 3
/usr/share/games/holotz-castle/game/menu/sv/menu.txt:INSTÄLLNINGAR
/usr/share/webapps/phpmyadmin/3.5.2.2/postinst-en.txt:   mkdir ${MY_INSTALLDIR}/config
/usr/share/webapps/phpmyadmin/3.5.2.2/postinst-en.txt:   chown ${VHOST_SERVER_UID}:${VHOST_SERVER_UID} ${MY_INSTALLDIR}/config
xargs: grep: terminated by signal 13