IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Linux命令整理之三:ln

    lincyang发表于 2012-07-25 16:45:33
    love 0

    Ln命令

    功能:

    链接文件。分为硬链接(hard link)和软链接(symbolic link)。默认为硬链接。

    语法:

    ln [ -f | -n] [ -s ] SourceFile [ TargetFile ]   链接到文件

    ln [ -f | -n] [ -s ] SourceFile ... TargetDirectory   一个或多个文件链接到目录

    用法说明:感觉着就是windows中的快捷方式。

    常用参数和选项:

    -f  促使 ln 命令替换掉任何已经存在的目的路径。如果目的路径已经存在,而没有指定-f 标志,ln命令不会创建新的链接,而是向标准错误写一条诊断消息并继续链接剩下的SourceFiles。 
    -n  指定,如果链接是一个现有的文件,那么不要覆盖文件的内容。 -f 标志重设了这个标志。这是缺省的行为。 
    -s  促使 ln 命令创建符号链接。符号链接中包含了它所链接的文件的名字。当对链接执行打开操作的时候,会使用到引用文件。对符号链接的stat 调用会返回链接的目标文件;必须完成lstat调用来获取链接的信息。可以使用readlink 调用来读取符号链接的内容。符号链接可能跨越文件系统,指向目录。 

    使用举例

    1. 文件的软链接

    ln  –s  /home/linc linc

    2.文件夹的软链接

    ln -s ~/android/sdk/* /tmp/testsdk/

    3.软链接的删除

    上面我已经建立了android adk的软链接,那么我怎么删除它呢?会不会把原文件也删掉呢?

    过往的经验是rm /tmp/testsdk后面无“/” 反斜杠。否则会把原文件删掉。

    rm -i -r testsdk
    rm: descend into directory `testsdk'? y
    rm: remove symbolic link `testsdk/build-tools'? y
    rm: remove symbolic link `testsdk/tools'? y
    rm: remove symbolic link `testsdk/add-ons'? y
    rm: remove symbolic link `testsdk/platforms'? y
    rm: remove symbolic link `testsdk/platform-tools'? y
    rm: remove symbolic link `testsdk/extras'? y
    rm: remove symbolic link `testsdk/temp'? y
    rm: remove symbolic link `testsdk/docs'? y
    rm: remove symbolic link `testsdk/system-images'? y
    rm: remove symbolic link `testsdk/sdk'? y
    rm: remove symbolic link `testsdk/sources'? y
    rm: remove symbolic link `testsdk/samples'? y
    rm: remove directory `testsdk'? y
    
    为了保险起见,我加了询问“-i”参数。



沪ICP备19023445号-2号
友情链接