美文网首页
Linux命令日日说(九)-- ln

Linux命令日日说(九)-- ln

作者: spt_genius | 来源:发表于2020-03-17 01:50 被阅读0次

    ln


    语法

    ln [options] source_file target_file
    

    不同平台下的命令参数不一样,这里以Mac为例。具体参数参考具体平台。


    参数

    • -F 如果目标文件已经存在并且是一个目录,请将其删除,以便可以进行链接。-F选项应该与-f-i一起使用。如果未指定,则隐含-f,除非指定了-s选项,-F选项是no-op。

    • -h 如果目标文件或目标目录是符号链接,请不要指向它。这对于-f选项非常有用,可以替换可能指向目录。

    • -f 如果目标文件已经存在,则取消链接,以便可以进行链接。(-f选项将覆盖以前的任何-i选项。)

    • -i 如果目标文件存在,则导致ln将提示写入标准错误。如果标准输入的响应以字符yy开头,则取消链接目标文件,以便可以进行链接。否则,不要尝试链接。(-i选项将覆盖以前的任何-f选项。)

    • -n-h相同,以与其他ln实现兼容。

    • -s 创建一个链接文件。

    • -v 显示创建链接的详细信息。

    -h, -i, -n-v选项是非标准的不推荐在Shell脚本中使用。它们的存在只是为了版本的兼容。


    Example

    • ln -s file1 file1_link

      创建一个链接文件。

      zzw:temp zzw$ ls
      file1 src
      zzw:temp zzw$ ln -s file1 file1_link
      zzw:temp zzw$ ls -al
      total 8
      drwxr-xr-x   5 zzw  staff  160  3 15 23:03 .
      drwxr-xr-x  31 zzw  staff  992  3 15 02:04 ..
      -rw-r--r--   2 zzw  staff    6  3 12 23:56 file1
      lrwxr-xr-x   1 zzw  staff    5  3 15 23:03 file1_link -> file1
      drwxr-xr-x   3 zzw  staff   96  3 15 22:52 src
      zzw:temp zzw$ stat -x file1_link
        File: "file1_link"
        Size: 5            FileType: Symbolic Link
        Mode: (0755/lrwxr-xr-x)         Uid: (  501/     zzw)  Gid: (   20/   staff)
      Device: 1,5   Inode: 69361057    Links: 1
      Access: Sun Mar 15 23:03:29 2020
      Modify: Sun Mar 15 23:03:29 2020
      Change: Sun Mar 15 23:03:29 2020
      
    • ln -f file1 file1_link

      取消一个软链,此时软链文件就变为了一个标准文件,你可以继续使用它。

      zzw:temp zzw$ ln -h file1 file1_link
      ln: file1_link: File exists
      zzw:temp zzw$ ls -al
      total 8
      drwxr-xr-x   5 zzw  staff  160  3 15 23:03 .
      drwxr-xr-x  31 zzw  staff  992  3 15 02:04 ..
      -rw-r--r--   2 zzw  staff    6  3 12 23:56 file1
      lrwxr-xr-x   1 zzw  staff    5  3 15 23:03 file1_link -> file1
      drwxr-xr-x   3 zzw  staff   96  3 15 22:52 src
      zzw:temp zzw$ ln -f file1 file1_link
      zzw:temp zzw$ ls -al
      total 16
      drwxr-xr-x   5 zzw  staff  160  3 15 23:07 .
      drwxr-xr-x  31 zzw  staff  992  3 15 02:04 ..
      -rw-r--r--   3 zzw  staff    6  3 12 23:56 file1
      -rw-r--r--   3 zzw  staff    6  3 12 23:56 file1_link
      drwxr-xr-x   3 zzw  staff   96  3 15 22:52 src
      zzw:temp zzw$ stat -x file1_link
        File: "file1_link"
        Size: 6            FileType: Regular File
        Mode: (0644/-rw-r--r--)         Uid: (  501/     zzw)  Gid: (   20/   staff)
      Device: 1,5   Inode: 69282173    Links: 3
      Access: Sun Mar 15 23:07:51 2020
      Modify: Thu Mar 12 23:56:25 2020
      Change: Sun Mar 15 23:07:50 2020
      

      如果不添加参数 file1 直接使用链接文件名,效果就有点不一样了。被直接删除了

      zzw:temp zzw$ ln -f file1_link
      ln: ./file1_link: No such file or directory
      zzw:temp zzw$ ls -al
      total 8
      drwxr-xr-x   4 zzw  staff  128  3 15 23:12 .
      drwxr-xr-x  31 zzw  staff  992  3 15 02:04 ..
      -rw-r--r--   2 zzw  staff    6  3 12 23:56 file1
      drwxr-xr-x   3 zzw  staff   96  3 15 22:52 src
      
    • ln -Fis file1 file1_link

      创建软链,存在则提示。

      zzw:temp zzw$ ls -al
      total 16
      drwxr-xr-x   5 zzw  staff  160  3 15 23:07 .
      drwxr-xr-x  31 zzw  staff  992  3 15 02:04 ..
      -rw-r--r--   3 zzw  staff    6  3 12 23:56 file1
      -rw-r--r--   3 zzw  staff    6  3 12 23:56 file1_link
      drwxr-xr-x   3 zzw  staff   96  3 15 22:52 src
      zzw:temp zzw$ ln -F file1 file1_link
      ln: file1_link: File exists
      zzw:temp zzw$ ln -Fis file1 file1_link
      replace file1_link? c^C
      zzw:temp zzw$ ln -Fi file1 file1_link
      replace file1_link? y
      zzw:temp zzw$ ls -al
      total 16
      drwxr-xr-x   5 zzw  staff  160  3 15 23:10 .
      drwxr-xr-x  31 zzw  staff  992  3 15 02:04 ..
      -rw-r--r--   3 zzw  staff    6  3 12 23:56 file1
      -rw-r--r--   3 zzw  staff    6  3 12 23:56 file1_link
      drwxr-xr-x   3 zzw  staff   96  3 15 22:52 src
      zzw:temp zzw$ ln -Fis file1 file1_link
      replace file1_link? y
      zzw:temp zzw$ ls -al
      total 8
      drwxr-xr-x   5 zzw  staff  160  3 15 23:10 .
      drwxr-xr-x  31 zzw  staff  992  3 15 02:04 ..
      -rw-r--r--   2 zzw  staff    6  3 12 23:56 file1
      lrwxr-xr-x   1 zzw  staff    5  3 15 23:10 file1_link -> file1
      drwxr-xr-x   3 zzw  staff   96  3 15 22:52 src
      
    • ln -sv file1 file1_link1

      看看-v参数的效果。

      zzw:temp zzw$ ln -sv file1 file1_link1
      file1_link1 -> file1    
      

    相关文章

      网友评论

          本文标题:Linux命令日日说(九)-- ln

          本文链接:https://www.haomeiwen.com/subject/ujbiehtx.html