Linux du、sort、wc命令

Linux du、sort、wc命令

du、sort、wc命令是常见的文件管理相关的命令。

  • 找到某个文件夹下的最大的文件
  • 统计某个文件中查找指定的pattern的个数(比如在Java的日志中统计Exception的个数)
  • 将文件夹下的文件按照大小排序

du

du 全名:disk usagedu命令用于显示目录或文件的大小,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 # 统计指定文件的行数

实例

命令之间的搭配使用,通常会使用到管道,管道符号是 |,管道的概念不在此赘述。

  1. 找到当前文件夹下最大的文件

用到的命令有:
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

这里还使用到了 重定向的概念。

  1. 统计当前文件夹下面的所有日志文件(.log文件)中Exception出现的次数

用到的命令有:
find
grep
wc

find . -name "*.log"|xargs grep -o Exception|wc -l
原文地址:https://www.cnblogs.com/Spground/p/9567891.html