# df命令

df命令用来查看当前文件系统(分区)的信息 直接输入df,默认输出所有分区的信息,以1K (1024 bytes)为单位

常用选项:

  • -h, -H:以最大的单位显示(如果超过1M就以M为单位,超过1G就以G为单位),小写和大写分别使用1024进制和1000进制
  • -B:按自定义的单位换算显示,可以使用的单位有1024进制(K, M, G, T, P, ...)和1000进制(KB, MB, GB, TB, ...),比如-B 10K等,并且1K,1M这些单位里面的1可以省略
  • -t:只显示指定格式的分区,一般磁盘都是用EXT4分区,可以用-t ext4忽略其他不重要的分区信息

# du命令

du命令用来查看文件/文件夹占用磁盘空间的大小 直接输入du,默认会将当前目录、子目录、子目录的子目录...的信息全部输出,以1K为单位 也可以指定要显示的目录,比如du /root

常用选项:

  • -h:以最大的单位显示,使用1024进制,与df中的选项相同
  • -d, --max-depth=N:设置递归深度,比如-d 1或者--max-depth=1表示只显示当前目录下的文件夹信息
  • -a:在设置了-d的时候,加上-a就可以同时将文件和文件夹都显示出来,否则只会显示文件夹
  • -B:按自定义的单位换算显示,与df中的选项相同
  • -t, --threshold=N:设置显示的阈值,正数表示文件/文件夹大小大于该值才显示,负数表示文件/文件夹大小小于该值才显示,N可以使用与-B选项中相同的单位

# find命令

find命令用来对文件进行精确搜索,支持很多种搜索条件

命令格式:

find [OPTIONS...] [查找路径] [查找条件] [处理动作]
  • 查找路径:默认为当前工作目录,可以指定具体的目录路径
  • 查找条件:进行本次搜索的标准,可以是文件名、文件大小、文件类型、文件权限等等;默认是指定目录中的所有文件
  • 处理动作:对于符合条件的文件进行某个处理操作,默认将查找结果输出到stdout

# 查找条件

可以使用-maxdepth N,-mindepth N来控制递归深度

# 根据文件名查找

  • name 文件名:支持通配符*,?,[],[^]
  • iname 文件名:大小写不敏感,支持通配符*,?,[],[^]

# 根据正则表达式查找

  • regex 正则表达式:正则表达式需要匹配整个路径,而不只是文件名

# 根据文件的属主查找

  • user 用户名
  • uid UserID
  • group 组名
  • gid GroupID

# 根据权限查找

find -perm [/-]mode
  • mode:精确匹配
  • /mode:隐含了逻辑或的关系,任何一个权限位的权限中只要能有一个权限匹配,即满足条件
  • -mode:隐含了逻辑与的关系,每一个权限位的权限中都必须同时包含指定权限位,才能满足条件

# 根据文件类型查找

-type,可选类型有

  • b:块设备
  • c:字符设备
  • d:目录文件
  • f:普通文件
  • l:符号链接文件
  • p:管道文件
  • s:套接字文件

# 根据文件大小查找

find -size [+-]n[bcwkMG]

+表示大于,-表示小于,不写符号表示(n-1, n]

# 处理动作

  • -ls:将查找到的结果用ls -li命令显示
  • -delete:删除查找到的文件

# xargs命令

xargs可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据 管道输送的是纯字符串信息,所以如果管道之后的命令不是处理字符串的命令,需要使用xargs命令将其转换成能够被后面命令处理的参数

Example

find -perm -444 -type f  xargs chmod a-r

# sort命令

sort命令用来将字符串排序,可以读取标准输入,也可以读取文件内容 可以与上面与文件大小有关的命令结合使用,实现按大小排序显示

常用选项:

  • -r:倒序,默认是升序排序
  • -n:按数字大小排序,而不是字符串(解决10比2大的问题)
  • -h:带单位的数字排序,如2K, 1M等