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”参数。