Linux命令-ln
2010-09-19 14:03
169 查看
Linux命令-ln
ln命令在两个文件之间创建链接(link)。默认他创建hard链接;在使用-s时创建symbolic(或者说soft)链接。语法:
ln命令在两个文件之间创建链接(link)。默认他创建hard链接;在使用-s时创建symbolic(或者说soft)链接。语法:
ln [OPTION]… [-T] TARGET LINKNAME
ln [OPTION]… TARGET
ln [OPTION]… TARGET… DIRECTORY
ln [OPTION]… -t DIRECTORY TARGET…
如果指定两个文件名,ln创建从第二个文件至第一个文件的链接(第一个文件是源文件)。
如果只指定TARGET,ln在当前目录以目标文件名创建目标文件的链接。
如果指定“–target-directory”(-t)选项,或者最后一个参数是一个目录并且没有指定–no-target-directory(-T)选项,ln将使用TARGET文件名在指定目录中创建每一个TARGET文件的链接。第三、四种语法实际上是为多个TARGET创建链接的方法。
通常ln并不移除任何已存在的文件。不过使用–force(-f)是将无条件的移除现存文件;使用–interactive(-i)将在移除他们时询问;–backup(-b)选项对现存文件重命名(Cygwin中是在文件名后添加“~”)。
ln命令创建的链接有以下两种:
·Hard link:hard链接是指现存文件的其他名字;link的文件和原始文件其实是完全相同的。他们实际上共享相同的inode(inode包含所有和文件相关的信息,从某种意义上说inode就相当于一个文件。关于inode请参考《鸟哥的Linux私房菜》)。你不能创建到一个目录的hard链接,并且hard链接不能跨越文件系统边界(也就是硬盘分区,嘿嘿,可以这么理解)。
·Symbolic link:缩写为symlinks。实际上它是一种特殊的文件类型(不是所有的内核都支持symlinks,比如System V release 3或者更早的版本(不懂这个版本是什么))。通过symlinks文件进行的大部分操作(opening, writing, reading)内核都将自动废弃链接并直接将操作应用至链接的目标文件上。但是有些操作,比如removiing将只作用于链接文件本身,对目标文件没有影响。
下面是可选的选项:
-b,–backup[=METHOD]:备份选项,为每个将要覆盖或者移除的文件建立备份。
-d,-F,–directory:允许拥有适当权限的用户尝试在创建到目录的hard链接。不过这可能由于系统限制(即使是超级用户)而失败(注:很多系统是不支持创建目录的硬链接的)。
-f,–force:移除已存在的目标文件。
-i,–interactive:提示是否移除已存在的目标文件。
-n,–no-dereference:当最后一个操作数是链接到目录的symlink时将其作为普通的文件对待。不过多介绍了,参考inof ln。值得一提的是当指定–no-target-directory(-T)时这个选项无效。
-s,–symoblic:创建symbolic链接。这个选项在不支持symbolic链接的系统上仅仅提示一个错误信息。
-S SUFFIX,–suffix=SUFFIX:在使用-b选项是指定为每个备份的文件添加的后缀。Cygwin默认貌似是“~”。
-t DIRECTORY,–target-directory=DIRECTORY:指定目标目录。
-T,–no-target-directory:当最后一个参数是目录或者链接到目录的symlink时将其作为普通文件。
-v,–verbose:用于在成功创建link后打印每个文件的名字。
–disable-exe-magic:仅用于Cygwin。参考Cygwin的info ln。
Example:
Bad Example:
# Create link ../a pointing to a in that directory.
# Not really useful because it points to itself.
ln -s a ..
Better Example:
# Change to the target before creating symlinks to avoid being confused.
cd ..
ln -s adir/a .
上图中的learn_ln是我使用bad example中的语法创建的,这个symlink链接到了自身。第二个当然正确的链接了。
Bad Example:
# Hard coded file names don’t move well.
ln -s ${pwd}/a /some/dir/
Better Example:
# Relative file names survive directory moves and also
# work across networked file systems.
ln -s afile anotherfile
ln -s ../adir/afile yetanotherfile
注:这个命令在建立LFS系统的过程用于使工具链总能链接至/tools,这样做的好处在于使compiler,assembler和linker在建立LFS系统的时候总可以正确的工作,即便是在chroot之后,命令如下:
1 ln -sv $LFS/tools /
ps.以上内容均翻译自Cygwin的info。其他版本可能会有差异,不过应该不会很大。见谅。主要是方便我自己看滴~~当然能方便大家就更好了。以后每天至少一个linux命令,每日任务没有完成隔日补全。不知道能不能坚持下去。哈哈。
Ln
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。
符号链接是指向文件的一个间接指针;它的目录项中包含了它所链接的文件名。符号链接可能会跨越文件系统,可能指向目录。
这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
-f : 链结时先将与 dist 同档名的档案删除
促使 ln 命令替换掉任何已经存在的目的路径。如果目的路径已经存在,而没有指定 -f 标志,ln 命令不会创建新的链接,而是向标准错误写一条诊断消息并继续链接剩下的 SourceFiles。
-n 指定,如果链接是一个现有的文件,那么不要覆盖文件的内容。 -f 标志重设了这个标志。这是缺省的行为。
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
本文出自 “上善若水威加海内” 博客,转载请与作者联系!
ln命令在两个文件之间创建链接(link)。默认他创建hard链接;在使用-s时创建symbolic(或者说soft)链接。语法:
ln命令在两个文件之间创建链接(link)。默认他创建hard链接;在使用-s时创建symbolic(或者说soft)链接。语法:
ln [OPTION]… [-T] TARGET LINKNAME
ln [OPTION]… TARGET
ln [OPTION]… TARGET… DIRECTORY
ln [OPTION]… -t DIRECTORY TARGET…
如果指定两个文件名,ln创建从第二个文件至第一个文件的链接(第一个文件是源文件)。
如果只指定TARGET,ln在当前目录以目标文件名创建目标文件的链接。
如果指定“–target-directory”(-t)选项,或者最后一个参数是一个目录并且没有指定–no-target-directory(-T)选项,ln将使用TARGET文件名在指定目录中创建每一个TARGET文件的链接。第三、四种语法实际上是为多个TARGET创建链接的方法。
通常ln并不移除任何已存在的文件。不过使用–force(-f)是将无条件的移除现存文件;使用–interactive(-i)将在移除他们时询问;–backup(-b)选项对现存文件重命名(Cygwin中是在文件名后添加“~”)。
ln命令创建的链接有以下两种:
·Hard link:hard链接是指现存文件的其他名字;link的文件和原始文件其实是完全相同的。他们实际上共享相同的inode(inode包含所有和文件相关的信息,从某种意义上说inode就相当于一个文件。关于inode请参考《鸟哥的Linux私房菜》)。你不能创建到一个目录的hard链接,并且hard链接不能跨越文件系统边界(也就是硬盘分区,嘿嘿,可以这么理解)。
·Symbolic link:缩写为symlinks。实际上它是一种特殊的文件类型(不是所有的内核都支持symlinks,比如System V release 3或者更早的版本(不懂这个版本是什么))。通过symlinks文件进行的大部分操作(opening, writing, reading)内核都将自动废弃链接并直接将操作应用至链接的目标文件上。但是有些操作,比如removiing将只作用于链接文件本身,对目标文件没有影响。
下面是可选的选项:
-b,–backup[=METHOD]:备份选项,为每个将要覆盖或者移除的文件建立备份。
-d,-F,–directory:允许拥有适当权限的用户尝试在创建到目录的hard链接。不过这可能由于系统限制(即使是超级用户)而失败(注:很多系统是不支持创建目录的硬链接的)。
-f,–force:移除已存在的目标文件。
-i,–interactive:提示是否移除已存在的目标文件。
-n,–no-dereference:当最后一个操作数是链接到目录的symlink时将其作为普通的文件对待。不过多介绍了,参考inof ln。值得一提的是当指定–no-target-directory(-T)时这个选项无效。
-s,–symoblic:创建symbolic链接。这个选项在不支持symbolic链接的系统上仅仅提示一个错误信息。
-S SUFFIX,–suffix=SUFFIX:在使用-b选项是指定为每个备份的文件添加的后缀。Cygwin默认貌似是“~”。
-t DIRECTORY,–target-directory=DIRECTORY:指定目标目录。
-T,–no-target-directory:当最后一个参数是目录或者链接到目录的symlink时将其作为普通文件。
-v,–verbose:用于在成功创建link后打印每个文件的名字。
–disable-exe-magic:仅用于Cygwin。参考Cygwin的info ln。
Example:
Bad Example:
# Create link ../a pointing to a in that directory.
# Not really useful because it points to itself.
ln -s a ..
Better Example:
# Change to the target before creating symlinks to avoid being confused.
cd ..
ln -s adir/a .
上图中的learn_ln是我使用bad example中的语法创建的,这个symlink链接到了自身。第二个当然正确的链接了。
Bad Example:
# Hard coded file names don’t move well.
ln -s ${pwd}/a /some/dir/
Better Example:
# Relative file names survive directory moves and also
# work across networked file systems.
ln -s afile anotherfile
ln -s ../adir/afile yetanotherfile
注:这个命令在建立LFS系统的过程用于使工具链总能链接至/tools,这样做的好处在于使compiler,assembler和linker在建立LFS系统的时候总可以正确的工作,即便是在chroot之后,命令如下:
1 ln -sv $LFS/tools /
ps.以上内容均翻译自Cygwin的info。其他版本可能会有差异,不过应该不会很大。见谅。主要是方便我自己看滴~~当然能方便大家就更好了。以后每天至少一个linux命令,每日任务没有完成隔日补全。不知道能不能坚持下去。哈哈。
Ln
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。
符号链接是指向文件的一个间接指针;它的目录项中包含了它所链接的文件名。符号链接可能会跨越文件系统,可能指向目录。
这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
-f : 链结时先将与 dist 同档名的档案删除
促使 ln 命令替换掉任何已经存在的目的路径。如果目的路径已经存在,而没有指定 -f 标志,ln 命令不会创建新的链接,而是向标准错误写一条诊断消息并继续链接剩下的 SourceFiles。
-n 指定,如果链接是一个现有的文件,那么不要覆盖文件的内容。 -f 标志重设了这个标志。这是缺省的行为。
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
本文出自 “上善若水威加海内” 博客,转载请与作者联系!
相关文章推荐
- linux命令 ln
- Linux命令(19):ln命令
- linux命令:ln(创建链接)
- Linux命令学习(30) ln命令
- linux命令详解——ln
- linux命令详解——ln
- 每天一个常用的linux命令(15)--ln
- linux命令(25):ln命令
- 每日一linux命令(49)-------ln 命令
- 一天一linux命令(11) ln 链接文件
- linux命令:查找文件
- linux命令:mkdir命令
- Linux命令date日期时间和Unix时间戳互转
- 华硕 X 550 LN笔记本 安装win 7
- linux命令详解——xargs
- python脚本执行linux命令
- linux命令英文缩写的含义(方便记忆)
- linux命令(12):ping命令
- linux命令(32):free命令
- Java开发必会的Linux命令