NO16 第二关课后考试-aw-F-过滤已知的一级目录
·总结的经验:
1、学会总结时学好运维的重要前提。
2、通过案列或例子来总结一个技术点或者命令。
3、画一张逻辑图,形象的卡通记忆这个知识技术点。
4、通过管道过滤数据时,最好先输出结果,然后回退再使用管道看着结果过滤。
一、如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是以及目录)?
分析过程:要完成此题,我们首先要想如何区分目录和文件?
1 根据颜色区分
2 ls -l 输出结果中以d(directory)开头的就是目录
3 ls -l 输出结果中第二列数字大于1的就是目录(文件没有硬链接的情况下是对的)
4 通过给目录加标识,然后通过滤标识就过滤出目录
(ls -F给不同文件加不同符号 或ls -p 只给目录加斜线)
5 通过find直接查找指定类型的文件(-d就是目录)
创建环境:
[root@localhost oldboy]# mkdir ext/oldboy 1 2 3 4 a b c d -p
[root@localhost oldboy]# tree
.
├── 1
├── 123.log
├── 2
├── 3
├── 4
├── a
├── b
├── c
├── d
├── ext
│ └── oldboy
└── oldboy
11 directories, 1 file
[root@localhost oldboy]# ls -l
total 696
drwxr-xr-x 2 root root 6 Jun 1 02:39 1
-rw-r--r-- 1 root root 712614 Apr 1 00:16 123.log
drwxr-xr-x 2 root root 6 Jun 1 02:39 2
drwxr-xr-x 2 root root 6 Jun 1 02:39 3
drwxr-xr-x 2 root root 6 Jun 1 02:39 4
drwxr-xr-x 2 root root 6 Jun 1 02:39 a
drwxr-xr-x 2 root root 6 Jun 1 02:39 b
drwxr-xr-x 2 root root 6 Jun 1 02:39 c
drwxr-xr-x 2 root root 6 Jun 1 02:39 d
drwxr-xr-x 3 root root 20 Jun 1 02:41 ext
drwxr-xr-x 2 root root 6 Jun 1 02:39 oldboy
[root@localhost oldboy]# ls -F (给目录加标识,-F 给不同文件加不同符号)
1/ 123.log 2/ 3/ 4/ a/ b/ c/ d/ ext/ oldboy/
[root@localhost oldboy]# ls -p (给目录加标识,-p 只给目录加斜线)
1/ 123.log 2/ 3/ 4/ a/ b/ c/ d/ ext/ oldboy/
方法一:
[root@localhost oldboy]# ls -l|grep "^d"
drwxr-xr-x 2 root root 6 Jun 1 02:39 1
drwxr-xr-x 2 root root 6 Jun 1 02:39 2
drwxr-xr-x 2 root root 6 Jun 1 02:39 3
drwxr-xr-x 2 root root 6 Jun 1 02:39 4
drwxr-xr-x 2 root root 6 Jun 1 02:39 a
drwxr-xr-x 2 root root 6 Jun 1 02:39 b
drwxr-xr-x 2 root root 6 Jun 1 02:39 c
drwxr-xr-x 2 root root 6 Jun 1 02:39 d
drwxr-xr-x 3 root root 20 Jun 1 02:41 ext
drwxr-xr-x 2 root root 6 Jun 1 02:39 oldboy
方法二:
[root@localhost oldboy]# ls -F
1/ 123.log 2/ 3/ 4/ a/ b/ c/ d/ ext/ oldboy/
[root@localhost oldboy]# ls -F|grep "/$" (/$:以/为结尾的)
1/
2/
3/
4/
a/
b/
c/
d/
ext/
oldboy/
方法三:
[root@localhost oldboy]# find ./ -maxdepth 1 -type d (-maxdepth 1表示查找命令的深度)
./ (./*比./多个*:表示只找./目录下的不包括./目录本身,这里就有./本身)
./1
./2
./3
./4
./a
./b
./c
./d
./oldboy
./ext
[root@localhost oldboy]# find ./* -maxdepth 1 -type d (./*比./多个*:表示只找./目录下的不包括./目录本身)
./1
./2
./3
./4
./a
./b
./c
./d
./ext
./ext/oldboy (怎么去掉这个子目录?-type d后面加 ! -name ".")
./oldboy
[root@localhost oldboy]# find . -maxdepth 1 -type d ! -name "."
./1
./2
./3
./4
./a
./b
./c
./d
./oldboy
./ext
方法四:(第二列数字大于1的就是目录)
[root@localhost oldboy]# ls -l
total 696
drwxr-xr-x 2 root root 6 Jun 1 02:39 1
-rw-r--r-- 1 root root 712614 Apr 1 00:16 123.log
drwxr-xr-x 2 root root 6 Jun 1 02:39 2
drwxr-xr-x 2 root root 6 Jun 1 02:39 3
drwxr-xr-x 2 root root 6 Jun 1 02:39 4
drwxr-xr-x 2 root root 6 Jun 1 02:39 a
drwxr-xr-x 2 root root 6 Jun 1 02:39 b
drwxr-xr-x 2 root root 6 Jun 1 02:39 c
drwxr-xr-x 2 root root 6 Jun 1 02:39 d
drwxr-xr-x 3 root root 20 Jun 1 02:41 ext
drwxr-xr-x 2 root root 6 Jun 1 02:39 oldboy
[root@localhost oldboy]# ls -l|awk '{if($2>1) print $0}' ($2>1,第二列大于1。$0输入整行)
total 696
drwxr-xr-x 2 root root 6 Jun 1 02:39 1
drwxr-xr-x 2 root root 6 Jun 1 02:39 2
drwxr-xr-x 2 root root 6 Jun 1 02:39 3
drwxr-xr-x 2 root root 6 Jun 1 02:39 4
drwxr-xr-x 2 root root 6 Jun 1 02:39 a
drwxr-xr-x 2 root root 6 Jun 1 02:39 b
drwxr-xr-x 2 root root 6 Jun 1 02:39 c
drwxr-xr-x 2 root root 6 Jun 1 02:39 d
drwxr-xr-x 3 root root 20 Jun 1 02:41 ext
drwxr-xr-x 2 root root 6 Jun 1 02:39 oldboy
方法五:
[root@localhost oldboy]# ls -dl */ (这个不常用)
drwxr-xr-x 2 root root 6 Jun 1 02:39 1/
drwxr-xr-x 2 root root 6 Jun 1 02:39 2/
drwxr-xr-x 2 root root 6 Jun 1 02:39 3/
drwxr-xr-x 2 root root 6 Jun 1 02:39 4/
drwxr-xr-x 2 root root 6 Jun 1 02:39 a/
drwxr-xr-x 2 root root 6 Jun 1 02:39 b/
drwxr-xr-x 2 root root 6 Jun 1 02:39 c/
drwxr-xr-x 2 root root 6 Jun 1 02:39 d/
drwxr-xr-x 3 root root 20 Jun 1 02:41 ext/
drwxr-xr-x 2 root root 6 Jun 1 02:39 oldboy/
方法六:
[root@localhost oldboy]# ls -l|sed -n '/^d/p' (sed命令过滤功能记一下,^d表示以d开头)
drwxr-xr-x 2 root root 6 Jun 1 02:39 1
drwxr-xr-x 2 root root 6 Jun 1 02:39 2
drwxr-xr-x 2 root root 6 Jun 1 02:39 3
drwxr-xr-x 2 root root 6 Jun 1 02:39 4
drwxr-xr-x 2 root root 6 Jun 1 02:39 a
drwxr-xr-x 2 root root 6 Jun 1 02:39 b
drwxr-xr-x 2 root root 6 Jun 1 02:39 c
drwxr-xr-x 2 root root 6 Jun 1 02:39 d
drwxr-xr-x 3 root root 20 Jun 1 02:41 ext
drwxr-xr-x 2 root root 6 Jun 1 02:39 oldboy
[root@localhost oldboy]# ls -F|sed -n '/\/$/p' (也可以过滤以/结尾的)
1/
2/
3/
4/
a/
b/
c/
d/
ext/
oldboy/
方法七:
[root@localhost oldboy]# ls -l|awk '/^d/' (awk命令过滤功能记一下,^d表示以d开头)
drwxr-xr-x 2 root root 6 Jun 1 02:39 1
drwxr-xr-x 2 root root 6 Jun 1 02:39 2
drwxr-xr-x 2 root root 6 Jun 1 02:39 3
drwxr-xr-x 2 root root 6 Jun 1 02:39 4
drwxr-xr-x 2 root root 6 Jun 1 02:39 a
drwxr-xr-x 2 root root 6 Jun 1 02:39 b
drwxr-xr-x 2 root root 6 Jun 1 02:39 c
drwxr-xr-x 2 root root 6 Jun 1 02:39 d
drwxr-xr-x 3 root root 20 Jun 1 02:41 ext
drwxr-xr-x 2 root root 6 Jun 1 02:39 oldboy
[root@localhost oldboy]# ls -F|awk '/\/$/' (也可以过滤以/结尾的)
1/
2/
3/
4/
a/
b/
c/
d/
ext/
oldboy/
上述方法总结:
一、ls -l|grep "^d"
#以d开头的
二、ls -l|awk '{if($2>1) print $0}'
#第二列数字大于1的
三、ls -F|grep "/$"
#给目录加标识,-F 给不同文件加不同符号
ls -p|grep "/$"
#给目录加标识,-p 只给目录加斜线
四、find . -maxdepth 1 -type d ! -name "."
#find加深度-maxdepth,类型d,然后取反,不包含名字为.的当前目录。
五、[root@localhost oldboy]# ls -dl */ (这个不常用)
六、[root@localhost oldboy]# ls -l|sed -n '/^d/p' (sed命令过滤功能记一下,^d表示以d开头)
[root@localhost oldboy]# ls -F|sed -n '/\/$/p' (也可以过滤以/结尾的)
七、[root@localhost oldboy]# ls -l|awk '/^d/' (awk命令过滤功能记一下,^d表示以d开头)
[root@localhost oldboy]# ls -F|awk '/\/$/' (也可以过滤以/结尾的)
awk命令:
·awk #(三剑客老大)过滤,输出内容,自成一门语言。 NR:行号
$1,2... 第一,二...列以此类推。但$0:标识一行。
-F 指定分隔符(-F ":"以:为分隔。$NF是最后一列。$1,$4,$NF逗号让结果间有空格)
[root@localhost oldboy]# tail -1 /etc/passwd
oldboy:x:1001:1001::/home/oldboy:/bin/bash
[root@localhost oldboy]# awk -F ":" 'NR==1 {print $6}' /etc/passwd
/root
[root@localhost oldboy]# awk -F ":" 'NR==1 {print $NF}' /etc/passwd
/bin/bash
[root@localhost oldboy]# awk -F ":" 'NR==1 {print $1,$4,$NF}' /etc/passwd
root 0 /bin/bash
Linux三剑客(只适合grep,sed,awk)正则表达式,对普通命令不适合(通配符)
1 ^ #以...开头,^d,意思是以d开头
2 $ #以...结尾,/$,意思是以/结尾
3 \ #让原本有意义的字符脱掉马甲,还原它本身的含义
4 . #代表任意单个字符
5 * #代表所有
NO16 第二关课后考试-aw-F-过滤已知的一级目录的更多相关文章
- NO15 第一关课后考试
第一关课后考试: 1.创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写如内容:inet addr:10.0.0.8 Bcast:10.0 ...
- NO17 第二关考试: 返回上次目录和ls -lrt倒序看文件--删除7天前的日志--查看日志更新--记录行号
第二题:不用cd /ildboy命令如何回到上一次的目录: 假如当前目录是: [root@localhost oldboy]# pwd/oldboy现在因为需要进入到了/tmp目录下进行操作,执行的命 ...
- Python:黑板课爬虫闯关第二关
第二关依然是非常的简单 地址:http://www.heibanke.com/lesson/crawler_ex01/ 随便输入昵称呢密码,点击提交,显示如下: 这样看来就很简单了,枚举密码循环 po ...
- SQL注入之Sqli-labs系列第二关
废话不在多说 let's go! 继续挑战第二关(Error Based- Intiger) 同样的前奏,就不截图了 ,and 1=1和and 1=2进行测试,出现报错 还原sql语句 查看源代 ...
- 20155320信息安全系统设计第二周课堂考试总结及myod的实现
20155320 信息安全系统设计第二周课堂考试总结及myod的实现 第二周测试一二已在课上提交 第二周测试3-gdb测试 用gcc -g编译vi输入的代码 在main函数中设置一个行断点 在main ...
- Python Challenge 第二关
第二关和第一关一样,还是一幅图和一行提示.提示说的是: recognize the characters. maybe they are in the book, but MAYBE they are ...
- 【linux题目】第二关
1.创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写入内容”inet addr:10.0.0.8 Bcast:10.0.0.255 Ma ...
- sqli-labs第二关 详解
学会了第一关,时隔多天来到了第二关,怎么说了没有看wp就给做出来了. 首先,我是自己先判断了下,这个是什么注入 ?id=1' 不行 ?id=1' or '1'='1--+ 也不行 然后又尝试了下 ?i ...
- C++ Primer第5版 第二章课后练习
练习2.1 C++ 语言规定short 和 int 至少 16 位, long 至少32位, long long 至少64位.带符号类型可以表示整数.负数或0, 无符号类型则仅能表示大于等于0的值Th ...
随机推荐
- Update(stage3):第1节 redis组件:7、持久化
7.redis的持久化 由于redis是一个内存数据库,所有的数据都是保存在内存当中的,内存当中的数据极易丢失,所以redis的数据持久化就显得尤为重要,在redis当中,提供了两种数据持久化的方式, ...
- vue+element ui table组件封装,使用render渲染
后台管理经常会用到表格,一开始封装了一个常用的功能性表格,点击这里: 后来由于需求增加,在表格中还会用到switch,select,input等多种组件,每次都要在html中增加<el-tabl ...
- 关于找不到指定的模块,异常来自HRESULT:0x8007007E的解决方法
上午从公司前辈那里拷贝到的ASP.NET代码,在自己机器上部署的时候发现问题,直接报错,找不到指定的模块,异常来自HRESULT:0x8007007E.并且一大堆警告. 在网上百度很多解决方法,归纳如 ...
- sshpass安装以及使用
centos7如何安装sshpass 先安装epel yum install -y epel-release yum repolist 安装完成epel之后,就可以按照sshpass了 yum ins ...
- SpringBoot常用注解解析
@RestController 将返回的对象数据直接以 JSON 或 XML 形式写入 HTTP 响应(Response)中.绝大部分情况下都是直接以 JSON 形式返回给客户端,很少的情况下才会以 ...
- Python磁力获取器命令行工具 torrent-cli
作为一个搞代码的,找资源这种事肯定不能像普通人一样打开百度盲目查找,你需要写个爬虫工具来帮你完成这件事情啦! 兼容环境 Windows/Linux/MacOs 安装 pip 安装 $ pip inst ...
- 条件语句(if语句)的用法
if语句是实现分支结构的常用分支语句之一,另外还有条件运算符.switch语句等. if语句的功能是:根据给定条件,选择程序执行方向. if语句的基本格式 “if语句”又称条件语句,其基本格式为: ...
- 2.2 logistic回归
logistic回归,是一个学习算法,用在监督学习问题中, 输出标签y是0或者1的时候,这是一个二元分类问题, 给定一个输入x,一张图,你希望识别出这是不是猫图, 需要一个算法,可以给出一个预测值,我 ...
- navicat连接数据库报错:未发现数据源名称并且未指定默认驱动程序
解决方法:安装navicat自带sqlncli_x64.msi,在navicat安装目录下
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 显示代码:同一行代码片段: span, div
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...