find命令,查找文件和目录

  • 查找用于根据与参数匹配的文件指定的条件来搜索和查找文件和目录列表的命令。
  • 语法: find pathname -option [-print ] [ -exec | -ok command ] {} \;
  • -name filename //查找名为filename的文件。 -iname filename //与-name相同,查找名为filename的文件,但忽略大小写,即不区分大小写。
  • 标准输入→键盘
  • 标准输出→显示屏
















  • -type查找某一类型的文件,如: b - 块设备文件。 d - 目录。 c - 字符设备文件。 p - 管道文件。 l - 符号链接文件。 f - 普通文件。 s - socket文件 1.使用当前目录中的名称查找文件

根据日期和时间查找文件和目录

  • -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -atime -n +n #按文件访问时间来查,-n指n天以内,+n指n天以前 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

根据大小查找文件

  • -size [+/-]n 按照文件大小查询文件,+n表示文件大小大于n,-n表示文件大小小于n。常用单位:k, M, G


  • #find / -type f -name “*.mp3” -size +10M -exec rm {} \; //查找超过10MB的所有.mp3文件,并使用一个命令删除它们。
  • find 命令默认会递归查找整个目录树,而这非常消耗时间和资源。好在目录查找的深度可以手动指定。例如我们只想查找一到两层以内的子目录,可以通过 maxdepth 选项来指定。 find ./test -maxdepth 2 -name ".php" find ./test -maxdepth 1 -name ".php"

反向查找

  • 除了查找满足条件的文件之外,我们还可以查找不满足条件的所有文件。用 -not,我们也可以使用感叹号 ! 来代替 -not。
  • find /root -not -name "*.cfg"


  • find 命令会将它们通过 AND 操作符(-a)结合起来,如果我们需要进行基于 OR 运算的查找时,可以加上 -o开关。

type命令

  • type命令主要用于区分一个命令到底是shell自带的还是外部独立的二进制文件提供的。

查看文件内容

  • cat命令,显示文件的内容 -n:文件中每一行都会显示行号。
  • nl命令,将指定的文件添加行号标注后写到标准输出。如果不指定文件或指定文件为"-" ,程序将从标准输入读取数据






more和less命令,分页查看文件内容

  • less命令使用方法与more命令基本类似,但是比more更好的是,less命令可以结合管道符“|”分屏查看执行命令时输出的信息时,既可以向下翻页也可以向上翻页,而“more”命令只能向下翻页,不能向上翻页


head和tail命令,查看文件开头或末尾的部分内容


sort命令,它将文件进行排序,并将排序结果标准输出

  • 工作原理: sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
  • sort -u -u : --unique 唯一,排序并且排除重复项
  • sort -r -r : --reverse 反向排序
  • sort -o -o : --output 将排序结果输出到源文件 ">",重定向。


  • sort -n -n :--number 按照数字进行排序,默认数字会被当作字符串进行比较,
  • sort -t -k 参数 -t :指定分隔符,默认tab为分隔符 -k: 指定按照哪一个分割区域进行排序


  • uniq命令,用户去除文件中的重复行,一般与sort命令结合使用。
  • file命令,用于显示文件的类型 md5sum命令,计算和校验文件的md5值
  • diff命令,全拼difference,比较文件的差异,常用于文本文件。
  • 2,4c2,4 的含义是:第一个文件中的第[2,4]行(注意这是一个闭合区间,包括第2行和第4行)需要做出修改才能与第二个文件中的[2,4]行相匹配。 接下来的内容则告诉我们需要修改的地方,前面带< 的部分表示左边文件的第[2,4]行的内容,而带> 的部分表示右边文件的第[2,4]行的内容,中间的 --- 则是两个文件内容的分隔符号。