一步一步来,
首先,ls -lR /etc/, 详细显示/etc/文件夹下所有文件(-l),并递归显示子文件夹里的内容(-R)
其次,通道|,表示把|之前命令的标准输出(stdout,指屏幕输出,键盘为标准输入)作为|之后命令的输入。
再次,tee则是从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。比如,ls -lR /etc/ |tee stagel.out就表示把ls的内容输出到屏幕并保存为stage1
然后,|sort|tee stage2.out,sort排序命令,因为tee stage1.out有把结果输出到屏幕,然后经过通道输入给sort排序,然后输入给tee,把结果输出到屏幕并保存为文件stage2.ou
然后,sort -r|tee stage3.out,这个跟前面一个类似,只是这个是降序.
然后,|uniq -c|tee stage4.out,uniq -c,重复行只显示一次,并标记出重复次数,这样处理后给tee
最后,>stage5.out很关键,我前面说了tee会输出到屏幕,但你运行这个命令会发现没有屏幕输出,问题就在这儿了,>为重定向符号,以为把标准输出重定向到stage5.out
希望对你有帮助
stage1.out 里存放的是 ls -lR /etc 得到的输出,即 /etc目录下及子目录下的内容。
stage2.out 是将前面得到的内容通过 sort 命令排序后得到的内容。
stage3.out 里是ls -lR /etc 按照 sort -r 即反序后得到的内容。
stage4.out和stage5.out里的内容是一摸一样的,就是将 stage3 里的内容用 uniq -c 命令处理后的内容, uniq -c 命令的用处是将多个重复的行变成一行,同时(-c的用处)在每行前面加上这行重复的次数.