2-18 Linux中的连接文件 --- 软链接

2-18 Linux中的连接文件 --- 软链接,第1张

Linux中的软链接类似于windows中的快捷方式。 创建方式:ln -s oldfile newfile。     例:文件软链接 (目录软链接也是一样的 *** 作方式)。     1、tmp 目录下创建一个 test.txt 文件。     2、ln -s test.txt test,为 test.txt 文件创建一个名为 test 的软链接。     3、ll 查看详情会发现有一个蓝色的 test -->test.txt (test 指向 test.txt)。同时文件类型是            l 开头,l 是指链接文件的意思。      4、对软链接文件进行 vim *** 作。输入This is ln -s test. :wq保存并退出。     5、通过cat test 和 cat test.txt 查看内容。得出的结果都是一样的。既软链接 test 和 test.txt              已经建立关联,对 test *** 作等于对 test.txt *** 作。tips:软链接特点。     1、可以对不存在的文件创建软链接。     tmp 目录下除了 test 和 test.txt 并没有其他文件。     此时 ln -s abc.txt t1,为不存在的 abc.txt 文件创建一个 t1 的软链接。t1 软链接是可以创建        的,只是由于没有真实存在的 abc.txt 文件。通过 ll 查看详情,系统会在 abc.txt 处用红色闪      烁高光发出提示,意指abc.txt文件不存在。     此时,tmp 目录下新建一个 abc.txt 文件,t1 软链接到 abc.txt 文件就会正常。不会再有红色      提示。     2、可以对文件 或者 目录创建软链接,目录创建软链接和文件创建软链接流程一样。     3、删除软链接,不会影响它的指向文件。     vim t1:编辑 t1 软链接,输入1 t1 的内容保存退出。     删除 t1 软链接,tmp 目录下已没有软链接指向 abc.txt 文件。     此时,cat abc.txt 文件可以查看内容,也可以 vim abc.txt 增加 2 abc.txt 内容。证实了,删        除软链接,不会影响它的指向文件。     4、删除了指向文件,该软链接将变为无效连接。     当 t1 软链接指向实际文件 abc.txt 的时候,t1是可以对 abc.txt 进行增删改查 *** 作的。若 rm -      rf abc.txt 删除了实质性的 abc.txt 文件后,t1 将不能做任何 *** 作。失去了实质性文件而存在       的软链接等同于创建一个空的软链接效果一样。

find命令用于查找文件,格式为:“find [查找路径] 寻找条件 *** 作”。

我在书中反反复复的提到“Linux系统中的一切都是文件”,接下来您就要感受到这份力量了。咱们在Linux系统中的搜索工作一般都是通过find命令来完成的,它可以根据不同的文件特性来做为匹配项(如文件名、大小、修改时间、权限等信息),一旦匹配到了则会默认为用户显示到屏幕上来,基础的匹配项目请见下表即可,我主要讲解下“--exec”参数重要的作用,这个参数是用于将find命令搜索到的结果交由给后面的命令再进一步做处理,十分类似于咱们将在下一章中提到的管道符技术。

编辑

参数作用

-name匹配名称

-perm匹配权限(mode为完全匹配,-mode为包含即可)

-user匹配所有者

-group匹配所有组

-mtime -n +n匹配修改内容的时间(-n指n天以内,+n指n天以前)

-atime -n +n匹配访问文件的时间-n指n天以内,+n指n天以前

-ctime -n +n匹配修改权限的时间-n指n天以内,+n指n天以前

-nouser匹配无所有者的文件

-nogroup匹配无所有组的文件

-newer f1 !f2匹配比文件f1新却比f2旧的文件

--type b/d/c/p/l/f匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件)

-size匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件)

-prune忽略某个目录

-exec {} \ 后面可接对搜索到结果进一步处理的命令(下面会有演示)

Linux系统中的配置文件根据FHS协议会被保存到/etc目录中(第六章精讲),如果咱们要想获取到该目录中所有以host开头的文件就可以这样做:

[root@linuxprobe ~]# find /etc -name "host*" -print

/etc/avahi/hosts

/etc/host.conf

/etc/hosts

/etc/hosts.allow

/etc/hosts.deny

/etc/selinux/targeted/modules/active/modules/hostname.pp

/etc/hostname

想要在整个系统中搜索所有权限中包括SUID权限的文件(第五章精讲),只需使用减号-4000即可:

[root@linuxprobe ~]# find / -perm -4000 -print

/usr/bin/fusermount

/usr/bin/su

/usr/bin/umount

/usr/bin/passwd

/usr/sbin/userhelper

/usr/sbin/usernetctl

参考:http://www.linuxprobe.com/chapter-02.html

两个方式:find命令或者shell脚本。

1、find命令

(1)find是linux下用于查找文件的通用方法。

(2)find语法: find  [指定查找目录]  [查找规则]  [查找完后执行的action]

(3)例如:find   /tmp   -name wa* -type l ,是在/tmp下查找名为wa开头且类型为符号链接的文件。找到就表示存在。

2、shell脚本

(1)在进行文件的自动处理中常常需要自动判别,下面的脚本判断test.log是否存在,存在则显示文件存在,否则显示文件不存在。

(2)例子:编辑一个脚本判断文件是否存在。

vi  t.sh

#!/bin/bash

if  [ -e /temp/test.log ];then   //这里是判断语句,-e表示进行比较结果为真则存在

echo "文件存在"

else

echo "文件不存在"

fi

保存退出

执行:

sh t.sh


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/5929273.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-08
下一篇2023-03-08

发表评论

登录后才能评论

评论列表(0条)

    保存