Linux 下的ln命令

连接的作用是在linux文件系统中把文件名和硬盘上实际的字节联系起来。比如:

echo "hello world! " > test1.txt
ln test1.txt test2.txt
  
  

    此时用cat命令可以看到:

    cat test2.txt
    hello world!
      
      

      当我们在文件系统中建立一个叫做test1的文档的时候,操作系统就把字节写入到磁盘上,并且与外部的一个文件名链接起来。如果我们修改文件名,文件本身的信息并没有改变,只是指向数据的信息改变了。


      如果删除其中的任何一个文件名:

      rm test1.txt
      cat test2.txt
      hello world!
        
        

        link 如果不带任何参数,则作用和ln相同,他们的相同作用都是创立文件名和数据的硬链接,即每一个文件名都独立链接到数据上,所以上文中删除了test2.txt 并不影响test1.txt的存在,这是跟符号链接最不相同的一点。

        ln -s test1.txt test2.txt
          
          

          ln还可创建符号链接,如上所示,则文件名test2.txt就是test1.txt的符号链接,test2.txt并没有指向test1.txt指向的数据,而是指向了test1.txt,所以符号链接可以理解成链接的链接。

          rm test2.txt
          cat test1.txt
          cat: test2.txt: No such file or directory
          
            
            

            如果删除test1.txt则test2.txt也无法解析。与硬链接不同的是符号链接可以链接不同分区的文档,或者创建目录的链接。

            创建目录链接

            ln -s /home/a2/test/ file
            cd file
            cd ..
            rm file
              
              

              通过创立符号链接之后就可以通过链接执行目录命令了,比如cd,需要注意的是这时候如果要用rm命令,则不用家-r参数。利用符号链接可以使非常长的路径名变得便于书写。

              ln命令语法详解

              ln [OPTION]...  TARGET LINK_NAME
              
                
                
                • -b如果目标文件已经存在,就创建目标文件的备份,例如:
                echo "It is a great time" >test2.txt
                ln -b test1.txt test2.txt
                ls
                test1.txt test2.txt test2.txt~
                cat test2.txt
                hello world!
                cat test2.txt~
                It is a great time
                  
                  
                  • -f如果目标文件存在,就覆盖目标文件:
                  echo "It is great time">test2.txt
                  ln -f test1.txt test2.txt
                  ls
                  test1.txt test2.txt
                  cat test2.txt
                  hello world!
                    
                    

                    如果目的文档本身是一个链接是,ln命令默认解引用链接:

                    ln -s test1.txt test2.txt
                    ln test2.txt test3.txt
                    rm test2.txt 
                    cat test3.txt
                    hello world!
                      
                      
                      • -i 链接时询问是否覆盖目标文件
                        如过ln命令缺省目标文件,则默认在当前目录创建链接
                      ln -s ~/test/
                      ls
                      test1.txt test
                        
                        
                        • 0
                          点赞
                        • 1
                          收藏
                          觉得还不错? 一键收藏
                        • 0
                          评论
                        评论
                        添加红包

                        请填写红包祝福语或标题

                        红包个数最小为10个

                        红包金额最低5元

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

                        抵扣说明:

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

                        余额充值