linux-常⽤命令-查命令【findwhereiswhichgrep】
1
Linux find 命令⽤来在指定⽬录下查⽂件。任何位于参数之前的字符串都将被视为欲查的⽬录名。如果使⽤该命令时,不设置任何参数,则 find 命令将在当前⽬录下查⼦⽬录与⽂件。并且将查到的⼦⽬录和⽂件全部进⾏显⽰。
语法:
  find path -option [ -print ] [ -exec -ok command ] {} \;
参数说明 :
find查命令的使用find 根据下列规则判断 path 和 expression,在命令列上第⼀个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使⽤⽬前路径,如果expression 是空字串则使⽤ -print 为预设 expression。
expression 中可使⽤的选项有⼆三⼗个之多,在此只介绍最常⽤的部份。
-amin n : 在过去 n 分钟内被读取过
-atime n : 在过去n天内被读取过的⽂件
-cmin n : 在过去 n 分钟内被修改过
-ctime n : 在过去n天内被修改过的⽂件
-ipath p, -path p : 路径名称符合 p 的⽂件,ipath 会忽略⼤⼩写
-name name, -iname name : ⽂件名称符合 name 的⽂件。iname 会忽略⼤⼩写
-size n : ⽂件⼤⼩是 n 单位,b 代表 512 位元组的区块,c 表⽰字元数,k 表⽰ kilo bytes,w 是⼆个位元组。
-type c : ⽂件类型是 c 的⽂件。
  d: ⽬录
  f: ⼀般⽂件
你可以使⽤ ( ) 将运算式分隔,并使⽤下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
2
(1)将当前⽬录及其⼦⽬录下所有⽬录或⽂件都列出来
find .
(2)将当前⽬录及其⼦⽬录下所有后缀名是 txt 的⽂件列出来
find . -name "*.txt"
(3)将当前⽬录及其⼦⽬录下⼀般⽂件都列出来
find . -type f
(4)将⽬前⽬录及其⼦⽬录下所有最近 20 天内更新过的⽂件列出
find . -ctime -20
(5)查/var/log⽬录中更改时间在7⽇以前的普通⽂件,并在删除之前询问它们
find /var/log -type f -mtime +7 -ok rm {} \;
(6)查前⽬录中⽂件属主具有读、写权限,并且⽂件所属组的⽤户和其他⽤户具有读权限的⽂件
find . -type f -perm 644 -exec ls -l {} \;
(7)为了查系统中所有⽂件长度为0的普通⽂件,并列出它们的完整路径
find / -type f  -size 0 -exec ls -l {} \;
3
Linux whereis命令⽤于查⽂件。
该指令会在特定⽬录中查符合条件的⽂件。这些⽂件应属于原始代码、⼆进制⽂件,或是帮助⽂件。
该指令只能⽤于查⼆进制⽂件、源代码⽂件和man⼿册页,⼀般⽂件的定位需使⽤locate命令。
(1)输⼊命令
whereis bash
(2)显⽰结果
bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/
(3)注意
以上输出信息从左⾄右分别为查询的程序名、bash路径、bash的man ⼿册页路径。
4
(1)查看指令"bash"的绝对路径
which bash
5
-
A<;显⽰⾏数>: 除了显⽰符合范本样式的那⼀列之外,并显⽰该⾏之后的内容。
-b: 在显⽰符合样式的那⼀⾏之前,标⽰出该⾏第⼀个字符的编号。
-B<;显⽰⾏数>: 除了显⽰符合样式的那⼀⾏之外,并显⽰该⾏之前的内容。
-c: 计算符合样式的列数。
-C<;显⽰⾏数>: 除了显⽰符合样式的那⼀⾏之外,并显⽰该⾏之前后的内容。
-h: 在显⽰符合样式的那⼀⾏之前,不标⽰该⾏所属的⽂件名称。
-H: 在显⽰符合样式的那⼀⾏之前,表⽰该⾏所属的⽂件名称。
-i: 忽略字符⼤⼩写的差别。
-l: 列出⽂件内容符合指定的样式的⽂件名称。
-L: 列出⽂件内容不符合指定的样式的⽂件名称。
-n: 在显⽰符合样式的那⼀⾏之前,标⽰出该⾏的列数编号。
-
r: 此参数的效果和指定"-d recurse"参数相同。递归查询
-v: 显⽰不包含匹配⽂本的所有⾏。
-w: 只显⽰全字符合的列。
-x --line-regexp : 只显⽰全列符合的列。
-y: 此参数的效果和指定"-i"参数相同。
(1)在⽂件中查字符串(不区分⼤⼩写)
grep -i  "1qaz" hr.txt
(2)出成功匹配的⾏,以及该⾏之后的三⾏
grep -A 3 -i "2wsx" hr.txt
(3)在⼀个⽂件夹中递归查询包含指定字符串的⽂件
grep -r "q" *
(4)以递归的⽅式查符合条件的⽂件。例如,查指定⽬录/etc/acpi 及其⼦⽬录(如果存在⼦⽬录的话)下所有⽂件中包含字符串"update"的⽂件,并打印出该字符串所在⾏的内容,使⽤的命令为    grep -r update /etc/acpi
(5)反向查。前⾯各个例⼦是查并打印出符合条件的⾏,通过"-v"参数可以打印出不符合条件⾏的内容。查⽂件名中包含 test 的⽂件中不包含test 的⾏,此时,使⽤的命令为
grep -v test *test*

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。