如何在Linux中符号链接文件?
我想在Linux中做一个符号链接。 我已经写了这个bash命令,第一个path是我想链接到的文件夹,第二个path是编译后的源文件。
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
它是否正确?
创build一个新的符号链接(如果符号链接已经存在,将失败):
ln -s /path/to/file /path/to/symlink
创build或更新符号链接:
ln -sf /path/to/file /path/to/symlink
ln -s TARGET LINK_NAME
-s
使其具有象征意义。
ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME
(因为一张ascii图片胜过一千个字符。)
一个箭头可能是一个有用的numum,特别是因为这几乎是Emacs的直接。
和大的图片,所以你不要把它与Windows的版本混淆
Linux的:
ln -s target <- linkName
视窗:
mklink linkName -> target
你也可以看看这些
ln -s "to-here" <- "from-here" mklink "from-here" -> "to-here"
from-here
不应该存在,它是要创造的,而to-here
应该已经存在(IIRC)。
(对于各种命令和参数是否应该包含预先存在的位置,或者要做出的位置,我总是会混淆不清。)
编辑:它仍然在慢慢沉入我的身边; 我有另一种方式,我写在笔记中。
ln -s (target exists) (link is made) mklink (link is made) (target exists)
ln -s source_file target_file
对原来的问题:
'ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal'
这确实会从文件/目录创build一个符号链接 ( -s
):
<basebuild>/IpDome-kernel/kernel
到你的新链接
/home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
以下几种方法可以帮助您记住:
首先是ln
的手册页 。 您可以通过在google中search“man ln”来访问它,或者打开一个terminal窗口并键入man ln
,您将获得相同的信息。 手册页明确指出:
ln [OPTION] … [-T] TARGET LINK_NAME(第一个表格)
如果每次不得不search或通读一个手册页都不适合你,也许你会更容易记住所有的nix命令都以相同的方式工作 :
cp /file/that/exists /location/for/new/file mv /file/that/exists /location/its/moving/to ln /file/that/exists /the/new/link
cp
将当前存在的文件(第一个参数)复制到新文件(第二个参数)。
mv
将当前存在的文件(第一个参数)移动到新的位置(第二个参数)
同样, ln
将当前存在的文件(第一个参数)链接到新链接(第二个参数) *
我想build议的最后一个选项是,您可以创build自己的手册页,这些页面易于阅读和轻松(为了您)查找/记忆。 只需制作一个简单的shell脚本,就可以提供您所需的提示。 例如♦ :
在您的.bash_aliases文件中,您可以放置如下所示的内容:
commandsfx() { echo "Symlink: ln -s /path/to/file /path/to/symlink" echo "Copy: cp /file/to/copy /destination/to/send/copy" } alias 'cmds'=commandsfx
然后当你需要的时候,从命令行inputcmds
,你就可以很快的阅读和理解,找回正确的语法。 您可以将这些function设置为高级,以便获取所需的信息,这取决于您。 你甚至可以让他们互动,所以你只需要按照提示..类似的东西:
makesymlink() { echo "Symlink name:" read sym echo "File to link to:" read fil ln -s $fil $sym } alias 'symlink'=makesymlink
* – 很明显,他们都可以采取不同的参数,做不同的事情,可以在文件和目录上工作…但前提是相同的
♦ – 使用bash shell的例子
ln [-Ffhinsv] source_file [target_file] link, ln -- make links -s Create a symbolic link. A symbolic link contains the name of the file to which it is linked. An ln command appeared in Version 1 AT&T UNIX.
ln -s sourcepath linkpathname
注意:
-s使符号链接,而不是硬链接
如果您位于要创build符号链接的目录中,则忽略第二个path。
cd myfolder ln -s target
它会在我的文件myfolder
里创buildtarget
符号链接。
一般语法
ln -s TARGET LINK_NAME
我想提出一个更简单的英文版本的介绍。
ln -s /path-text/of-symbolic-link /path/to/file-to-hold-that-text
“ln”命令创build链接FILE,“-s”指定链接的types将是符号。 一个符号链接文件的例子可以在WINE安装中find(使用“ls -la”来显示目录内容的一行):
lrwxrwxrwx 1 me power 11 Jan 1 00:01 a: -> /mnt/floppy
标准的文件信息的东西在左边(虽然注意第一个字符是一个“l”的“链接”); 文件名是“a:”,“ – >”也表示文件是链接。 它基本上告诉WINE如何将Windows“Drive A:”与Linux中的软盘驱动器相关联。 要实际创build一个符号链接(在当前目录下,实际上为WINE做这个更复杂;使用“winecfg”实用程序):
ln -s /mnt/floppy a: //will not work if file a: already exists
在Linux上创build符号链接或软链接:
打开Bash提示符并键入下面提到的命令来创build一个符号链接到你的文件:
A)转到要创build软链接的文件夹,并input如下所示的命令 :
$ ln -s (path-to-file) (symbolic-link-to-file)
$ ln -s /home/user/file new-file
B)转到你的新文件名path并input :
$ ls -lrt (To see if the new-file is linked to the file or not)
例:
ls -lrt
lrwxrwxrwx 1 user user 24 Aug 6 23:40 new-file -> /home/user/file
Note: Where, A -> B Means, A is symbolically linked to B
用于创build符号链接/软链接请使用下面的方法
ln -s {source-filename} {symbolic-filename}
例如ln -s file1 link1
有两种types的链接:
符号链接:引用指示另一个文件的抽象位置的符号path
硬链接:参考物理数据的具体位置。
在你的情况符号链接:
ln -s source target
你可以参考http://man7.org/linux/man-pages/man7/symlink.7.html
你可以创build太硬链接
到文件的硬链接与原始目录条目无法区分; 对文件的任何更改都与用于引用文件的名称有效无关。 硬链接可能通常不涉及目录,也可能不跨文件系统。
ln source link
如何在stream浪汉中创build符号链接。 脚步:
- 在stream浪文件中创build一个同步文件夹。 例如config.vm.synced_folder“F:/ Sunburst / source / sunburst / lms”,“/ source”F:/ Sunburst / source / sunburst / lms: – 源代码所在的位置/ source:
- stream浪起来,inputvagrant ssh并转到源目录,例如cd源
- validation您的源代码文件夹结构在源目录中是否可用。 例如/ source / local
- 然后转到与浏览器关联的文件的访客机器目录。 得到文件的备份之后。 例如sudo mv local local_bk
- 然后创build符号链接,例如sudo ln -s / source / local local。 本地平均链接名称(您要连接的客户机中的文件夹名称)如果您需要删除符号链接: – 键入sudo rm local