Linux du、sort、wc命令
Linux du、sort、wc命令
du、sort、wc命令是常见的文件管理相关的命令。
- 找到某个文件夹下的最大的文件
- 统计某个文件中查找指定的pattern的个数(比如在Java的日志中统计Exception的个数)
- 将文件夹下的文件按照大小排序
du
du
全名:disk usage
,du
命令用于显示目录或文件的大小,du
会显示指定的目录或文件所占用的磁盘空间。
常用的语法:
du [-abcDhHklmsSx] file_path
最常见的参数:
- -a 显示目录中个别文件的大小,每个文件或目录的大小都要显示出来,目录的大小是指的该目录下文件和子目录的总和;
- -S 显示目录大小的时候,不包含子目录的大小,只包含该目录下文件的总和;
- -s 仅显示该目录或者文件的总计,不显示其他子目录信息;
- -h 输出的大小按照人类可读的方式,例如K M G
- -t 设置阈值,+20M大于20M的文件,-20M小于20M的文件;
du -ahS test_dir #以人类可读的方式显示test_dir文件夹下的文件(包含目录)的大小;
输出小于4K文件的大小
du -aS -t -4K file_path
sort
用于将文本文件内容进行排序 sort可针对文本文件的内容,以行为单位来排序。
语法:
sort [-bcdfimMnr] file
常用的参数说明:
- -r 以相反的顺序进行排序;(默认是升序)
- -n 按照数值的大小进行排序;(默认是ASCII码值)
- -u 忽略相同的行;
- -h 按照人类可读的方式排序,例如100K < 2M < 1G
sort testfile
sort -rnu testfile #按照数值大小逆序且去重复项输出
wc
Linux wc命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为”-“,则wc指令会从标准输入设备读取数据。
语法:
wc [-clw] [file…]
常用的参数含义:
- -c 或 –bytes 只显示bytes数
- -l 或者 –lines 只显示行数
- -w 或者 –words 只显示单词数
wc testfile #缺省参数将输出 指定文件的 行数、单词数、字节(符)数
wc -l testfile # 统计指定文件的行数
实例
命令之间的搭配使用,通常会使用到管道,管道符号是 |
,管道的概念不在此赘述。
- 找到当前文件夹下最大的文件
用到的命令有:
find
du
sort
head
find . -type f|xargs du -ahS 2>/dev/null|sort -rh|head -1
输出
1.2G ./hand_recognition/caches/leap_motion_data.cache
这里还使用到了 重定向的概念。
- 统计当前文件夹下面的所有日志文件(.log文件)中Exception出现的次数
用到的命令有:
find
grep
wc
find . -name "*.log"|xargs grep -o Exception|wc -l