find命令:
基本用法:find [表达式] [选项]
表达式是要查询的文件名的格式,可以是具体名字,也可以是正则表达式。默认以当前路径作为查询起点,否则需要在表达式中指定查询路径和文件名表达式.
常用选项:-type 指定查询的类型,后面跟f表示普通文件,d表示文件夹
-maxdepth 指定查询的最大深度,后跟一个整数。
例:find *.txt : 查询当前路径及其子路经下的所有名字为xxx.txt的文件和文件夹。
find /usr/lib/linux* -maxdepth 0 -type d : 查询/usr/lib目录下(由于指定了-maxdepth 0所以不包括其子目录)所有名字以linux开头的文件夹
du命令:
基本用法:du [表达式] [选项]
表达式含义同上
常用选项:-h 以K,M,G为单位,提高信息的可读性
-s 仅显示总计,只列出最后加总的值
-S 显示个别目录的大小时,并不含其子目录的大小
例:du ./* -h : 显示当前目录下所有文件/文件夹(显示子目录)的总大小(包括子目录大小)
du ./* -hs : 显示当前目录下所有文件/文件夹(不显示子目录)的总大小(包括子目录大小)
du ./* -hsS :显示当前目录下所有文件/文件夹(不显示子目录)的总大小(不包括子目录大小)
sort命令:
功能:sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序 输出。
基本用法:sort 文件名 [选项]
常用选项:-r : sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了
-n : 不按照字典序排序,而是以数值来排序(适合于每行开头是数字的情况)
t选项和-k选项 :
如果有一个文件的内容是这样:
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?
幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了。
[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。