请问这段grep是不是这个意思?


kali@kali:~$ ls -la /usr/bin | grep zip
-rwxr-xr-x    3 root root    34480 Jan 29    2017 bunzip2
-rwxr-xr-x    3 root root    34480 Jan 29    2017 bzip2
-rwxr-xr-x    1 root root    13864 Jan 29    2017 bzip2recover
-rwxr-xr-x    2 root root    2301 Mar 14    2016 gunzip
-rwxr-xr-x    1 root root    105172 Mar 14    2016 gzip

这是教材上的演示。我不知道这输出的“bunzip2”“bzip2”这一群是文件名还是文件内容。我就locate了一下,然后发现这些是文件名。那看来这段代码就是搜索出来usr/bin这个目录里面名字带有zip这个字符串的文件,是吗

grep过滤的意思,这个命令里的意思是过滤出/usr/bin/下包含zip关键字的文件

是命令不是代码,将ls命令的执行结果以管道传递给grep命令作进一步的筛选

1、grep过滤中来的是包含zip关键字的内容,但是你前面使用的ls -la的结果就是一个文件及目录列表,所以在此环境下你过滤的就是包含zip的文件或者文件夹;
2、你看到的这些文件都是安装了gzip,bzip之后的命令,你仔细看权限,这些文件是有执行权限的。例如你通过gzip压缩命令调用的就是这个命令。

img


3、如果你需要过滤的是内容,你可以使用#grep -rn zip /usr/bin