Linux学习笔记三

本文详细介绍了Linux中的文件查找命令find,以及软链接(ln -s)和硬链接的区别,包括它们在路径选择、文件指向和移动后的表现。重点讲解了相对路径和绝对路径在软链接中的应用,并强调了硬链接的持久性。
摘要由CSDN通过智能技术生成

其他命令

一、查找文件

find [路径] -name "*.py"     //表示查找指定路径下扩展名是.py的文件,包括它的子目录
                            //选项-name表示指定文件名称的条件

注意:如果省略了路径选项,表示在当前文件夹下进行查找;find命令可以配合通配符一块使用。

例1.搜索当前文件夹下文件名包含 “1” 的文件
          find  -name "*1*"

例2.搜索当前文件夹下以 “.txt” 结尾的文件
          find -name "*.txt"

例3.搜索搜索当前文件夹下以 “1” 开头的文件
          find -name "1*"

二、软链接

理解:可以类比于Windows 下的快捷方式,Linux中可以建立文件的软链接,通过软链接快速访问它指向的文件。

ln  -s  链接文件的完整路径  链接名

需要注意的是,-s选项不可以省略,如果没有这个选项,建立出来的就是硬链接而不是软链接。如果建立的是硬链接,则两个文件占用的是一样大小的硬盘空间,所以一般不使用硬链接。

同时,完整路径使用的一般是绝对路径,在链接的文件移动完之后,软链接仍然可以正常使用。具体以一个例子来体现:

例3、
1:将桌面文件下的 "01.py" 文件移动到 "demo/b/c" 文件下
     mv /home/python/Desktop/01.py /home/python/Desktop/demo/b/c  //我这里使用的是绝对路径

2:在桌面目录下新建 "01.py" 的软链接 "FirstPython"   //事先已经切换到了桌面目录
     ln -s demo/b/c/01.py 01_xiangdui                          //相对路径建立软链接
     ln -s /home/python/Desktop/demo/b/c/01.py 01_xiangdui     //绝对路径建立软链接

3:将 "FirstPython" 链接文件移动到 "demo" 目录下,比较相对路径和绝对路径的区别
     mv 01* demo                                               //通配符

配合下面的图片进行理解:

 

这个是相对路径建立软链接,使用这个命令会将建立好的软链接存放于当前目录下(即桌面),据绝对路径亦是如此,可以发现,用ls -l命令查看软链接时,指向的是图中绿色路径所下的文件,使用cat命令查看这个软链接就可以访问 "01.py"的文件内容。

再来看绝对路径建立的软链接:

 

 和相对路径同理,目前还看不出什么区别,此时再用tree命令查看一下桌面文件夹下的目录结构:

 可以看到,两个建立好的软链接目前存放于桌面下,通过cat命令都可以访问链接文件的内容。如果将这两个软链接一起移动到demo文件下的时候,再用tree看一下桌面问价的目录结构:

 可以看到这个时候用相对路径建立的软链接就出现了问题,链接名变红,后面所指向的路径也变色,表示不再可以使用了。这是因为demo的子目录里面没有demo目录,所以会出问题。同理使用cat命令也不能查看这个软链接指向文件的内容。

三、硬链接

在创建软链接的时候不用选项-s就会产生硬链接。

例4、
1.在~/Desktop/demo目录下建立~/Desktop/demo/b/c/01.py的硬链接
   ln /home/python/Desktop/b/c/01.py 01_hard     //由于事先切换到了桌面文件下的demo目录,所以建 
                                                   立的硬链接就在demo目录下保存着

2.使用ls -l命令查看文件的硬链接数
3.现在删除~/Desktop/demo/b/c/01.py,此时使用tree命令查看demo目录下的三个链接(相对、绝对和硬链接),看有啥区别
  
   rm ~/Desktop/demo/b/c/01.py                  //用的也是绝对路径

可以看到创建的硬链接保存在了demo目录下。

再来看:

 

此时硬链接的硬链接数是2。如果此时删除了01.py文件,用tree命令看一下目录结构:

 

 可以看到,软链接已经失效了,而硬链接却还能使用。这是因为Linux中文件和文件名是分开存放的,通过文件名可以访问到文件信息,可以理解为文件名是一个指针,是一个地址,通过这个文件名可以找到对应的文件,进而访问文件信息,而软链接文件中存放的是链接到源文件的完整路径,通过这个完整路径,可以访问到这个链接文件的文件数据,具体流程如下:

软链接文件名---->链接文件数据(完整路径)--->文件名--->文件数据。如果删除了文件名,自然而然地,中间环节少了某一项,所以软链接失效。硬链接则不同,硬链接可以理解为文件的另外一个文件名,通过这个文件名照样可以访问到文件数据,具体流程如下:

文件名------------------->文件数据<---------------------硬链接。

少了一个文件名,通过硬链接照样可以访问到文件数据。只有把一个文件的所有硬链接全部删除,这个文件数据才会真正从磁盘上消失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值