Linux链接命令和搜索命令

来源:互联网 发布:java 双亲委派模型 编辑:程序博客网 时间:2024/05/29 14:41

一:链接命令

ln [-s] [原文件] [目标文件] 

功能描述:生成链接文件;选项:-s创建软链接。 

  硬链接特征: 

1.拥有相同的i节点(ls -i文件命令可以查看i节点)和存储的block块,可以看做是同一个文件; 

2.可通过i节点识别; 

3.不能跨分区; 

4.不能针对目录使用。 

  使用硬链接方式创建的文件同原文件相比:修改任何一方文件的内容都会影响另外一方;删除其中一个文件都不影响另外一个文件的数据。 

  软链接特征: 

1.类似Windows快捷方式; 

2.软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据; 

3. lrwxrwxrwx l表示软链接,软链接文件权限都为 rwxrwxrwx,但访问该文件时,权限还要看原文件的权限 

4.修改任意文件,另一个都会改变; 

5.删除原文件,软链接不能使用。 

  注:做软链接时,原文件的路径一定要写绝对路径!

二:搜索命令:

1)文件搜索命令

1locate命令 

locate 文件名:在后台数据库中按文件名搜索,搜索速度更快。 

locate命令所搜索的后台数据库:/var/lib/mlocate(默认自动一天一更新);我们可以使用updatedb命令手动更新数据库。 

locate命令是根据/etc/updatedb.conf这个配置文件进行搜索的:

  • PRUNE_BIND_MOUNTS = "yes" 表示开启搜索限制;
  • PRUNEFS = 表示搜索时,不搜索的文件系统;
  • PRUNENAMES = 表示搜索时,不搜索的文件类型;
  • PRUNEPATHS = 表示搜索时,不搜索的路径。

2find命令 

find [搜索范围] [搜索条件]:搜索文件。 

如:find / -name install.log 

  避免大范围搜索,会非常耗费系统资源; 

find是在系统当中搜索符合条件的文件名,需要文件名完全匹配。使用通配符后可以进行模糊查询。 

Linux中的通配符

通配符

说明

*

匹配任意内容

?

匹配任意一个字符

[]

匹配任意一个中括号内的字符

如: 
find /root-name "ab*":在/root目录下查找文件名以ab开头的文件或目录。(匹配“ab” 

find /root-name "ab?":在/root目录下查找以ab开头的3个字符命令的文件或目录。(不匹配“ab” 

find /root-name "ab[cd]":在/root目录下查找文件名为abcabd的文件或目录。

如:find /root -iname install.log:不区分大小写根据文件名进行搜索。 

find /root-user root:按照所有者搜索。这里表示按root用户搜索其所拥有的文件。 

find /root-nouser:查找没有所有者的文件。 

注:没有所有者的文件一般都是垃圾文件,我们可以手动把它们删除。除了下面两种情况,第一种,由系统内核产生的文件,如/proc/sys目录下的文件,文件可能没有所者;第二种,外来接入的U盘、光盘等,此外里面的文件如果由Windows产生则不存在所有者。(Windows系统不是没有文件所有者这个概念,而是它忽略了这个概念。) 

find/var/log/ -mtime +10:查找10天前修改的文件。 

选项: 
-atime:文件访问时间 

-ctime:改变文件属性 

mtime:修改文件内容 

参数,如: 

-1010天内修改的文件 

1010天当天修改的文件 

+1010天前修改的文件 

find .-size 25k:查找文件大小为25KB的文件。这里查找的是当前目录下。 

参数,如: 

-25k:小于25KB的文件 

25:等于25KB的文件 

+25k:大于25KB的文件 

注:可以搜索以MB为单位的文件,如find . -size 2M 

find . inum234567:查找i节点为234567的文件。(通过ls -i [文件名]可以查看文件的i节点) 

find /etc-size +20k -a -size -50k:查找/etc/目录下,大于20KB并且小于50KB的文件。 

选项: 

-aand):逻辑与,两个条件都要满足 

-oor):逻辑或,两个条件满足一个即可 

find /etc-size +20k -a -size -50k -exec ls -lh {} \;:查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息。其中-exec命令 {}\;表示将前一个命令的结果作为参数执行-exec后面的这条命令。此外-ok命令 {}\;也具有相同的功能,不同的是,对每次命令结果作为后面命令的参数执行前会询问用户是否执行,输入y则执行。

三:命令搜索命令

1)搜索命令的命令whereis 

whereis 命令名:搜索命令所在路径及帮助文档所在位置。 

选项: 

-b:只查找可执行文件所在路径 

-m:只查找命令的帮助文件所在路径 

2)搜索命令的命令which 

which 命令名:搜索命令所在路径及别名。 

注:whereiswhich命令搜索的都是系统命令。 

3PATH环境变量 

- PATH环境变量:定义的是使用命令时系统搜索命令的路径,同样也是whereiswhich搜索命令时查找的路径。

[root@localhost~]# echo $PATH

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/wml/.local/bin:/home/wml/bi

四:字符串命令

1)搜索字符串命令grep 

grep [选项]字符串文件名:在文件当中匹配符合条件的字符串。 

选项: 

-i 忽略大小写 

-v 排除指定字符串

五:find命令与grep命令的区别

  • find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
  • grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。