if(S_ISDIR(statbuf.st_mode))
{
if(strcmp(".",entry->d_name)==0||strcmp("..",entry->d_name)==0)
continue
printf("%*s%s/\n",depth,"",entry->d_name)
printdir(entry->d_name,depth+4)
}
首先确定是目录,要不然直接输出,然后如果的当前目录(.)或者父目录(..),则执行下一个循环其实就是跳过这两个目录,printf("%*s%s/\n",depth,"",entry->d_name)这句其实就是让显示的好看点,根据depth决定要打印出几个空格,书上有关于&*s的用法,接着就是再一次递归。。。。这个解释不来,只能意会不能言传。
用grep遍历目标目录下的所有文件比如:你的字符是 “some_code” ,文件夹名字是 YOUR_DIR<pre t="code" l="bash">grep -R "some_code" YOUR_DIR
如果你不需要显示内容,只需要含有某个字符的文件:<pre t="code" l="bash">grep -lR "some_code" YOUR_DIR
附录:grep -R 和 -l 参数-R, -r, --recursive递归地读每一目录下的所有文件。这样做和 -d recurse 选项等价。
-l, --files-with-matches禁止通常的输出;作为替代,打印出每个在通常情况下会产生输出的输入文件的名字。对每个文件的扫描在遇到第一个匹配的时候就会停止。
ps:如果目录下有二进制文件,也可能匹配到。
linuxstrings命令不加参数时,它会扫描指定文件或目录,并将其中的所有可打印字符串输出到标准输出。它可以用来查找文件中的隐藏信息,如注释、版权声明等。它还可以用来查找可执行文件中的字符串,以查看其功能。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)