zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Instrument: ln

ln
2023-09-11 14:16:17 时间

  

NAME
       ln - make links between files

SYNOPSIS
       ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
       ln [OPTION]... TARGET                  (2nd form)
       ln [OPTION]... TARGET... DIRECTORY     (3rd form)
       ln [OPTION]... -t DIRECTORY TARGET...  (4th form)

软连接和硬链接:

软连接文件的一种快捷方式,有自己的inode文件节点,并在磁盘上有一小片空间存放路径名;硬链接则是一个文件有多个别名,系统并不为它重新分配inode。软连接可以对目录进行连接;硬连接不行。

 

参数:

  1. -f:   --force    remove existing destination files
  2. -n: --no-dereference    treat LINK_NAME as a normal file if it is a symbolic link to a drectory
  3. -s: --symbloic  make symbolic links instead of hard links
  4. -v: --verbose print name of each linked file

 

*******************************************************************************************************

建立到文件的软链接:

  1. ln -sv TARGET LINK_NAME

     

  2. ln -svf TARGET LINK_NAME

    覆盖原有软连接

 

*******************************************************************************************************

建立到目录的软链接:

  1. ln -sv TARGET LINK_NAME

    LINK_NAME不存在时,会直接创建软连接

     

  2. LINK_NAME存在,且为一个目录时,会在目录下生成连接文件,且连接文件的目标为命令中给出的路径,如果是相对路径,则发生错误,故使用相对路径时,谨慎

     

     

  3. 如果LINK_NAME只给定了一个已经存在的目录, 在会在该目录下以TARGET的BASE_NAME创建连接, 并会不覆盖已经存在的目录, ln 使用 -f 会覆盖 已经存在的 连接 或 普通文件, 但绝不会覆盖LINK_NAME位置的目录(该目录已经存在)
     

     

  4. 使用rm删除连接文件的时候,如果连接文件指向目录,则加倍小心带/和不带/区别, 带 / 操作的是连接指向的目录, 不带 / 操作的是连接本身
    带/删除的是连接文件指向的目录
    不带/才是删除连接文件本身

     

     上图中b为指向目录的一个连接文件

  5.  如果要覆盖指向目录的连接文件则必须使用-n选项,否则ln会在连接文件指向的目录下创建新的连接文件,这通常不是我们所期望的,-n选项标明把连接文件作为普通文件对待,进行覆盖

     

     上图示例中,在xx这个连接文件所指向的目录下,建立了以$(basename TARGET)为新名字的连接文件

  6. 覆盖指向目录的连接文件使用-n参数

  7. -b 备份

      

  8. --suffix 指定备份suffix

     

  9. 如果TARGET为文件则TARGET最后不能带 / , 目录无限制