我想在Linux中建立一个符号链接.我写了这个bash命令,其中第一个路径是我想要链接到的文件夹,第二个路径是编译源.
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
Run Code Online (Sandbox Code Playgroud)
它是否正确?
如果我有一个符号链接的文件或目录,我将它提交到Git存储库,它会发生什么?
我会假设它将它作为符号链接留下,直到文件被删除,然后如果你从旧版本拉回文件它只是创建一个普通文件.
当我删除它引用的文件时它会怎么做?它只是提交悬空链接吗?
我有一个重要目录的符号链接.我想摆脱那个符号链接,同时保持它背后的目录.
我试着rm
回去rm: cannot remove 'foo'
.
我试着rmdir
然后回来rmdir: failed to remove 'foo': Directory not empty
然后继续前进rm -f
,rm -rf
然后sudo rm -rf
然后我去寻找我的备份.
有没有办法摆脱符号链接,而不是用洗澡水扔掉婴儿?
最近我在求职面试时被问到这个问题.我是诚实的,并说我知道符号链接的行为以及如何创建一个,但不理解硬链接的使用以及它与符号链接的区别.
下面是我创建目录符号链接的代码:
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
Run Code Online (Sandbox Code Playgroud)
我已经创建了目录/etc/nginx
.我只是希望源目录(/usr/local/nginx/conf/
)的内容位于目标目录(/etc/nginx
)的内容中.但是当我执行代码时,/etc/nginx
包含一个名为的目录conf
,而不是内容conf
.该目录包含我想要的内容,但位置错误.
为什么它将目录放在目标文件夹中,而不是仅仅将目录的内容放在目标文件夹中?
我们的开发人员使用基于Windows和Unix的操作系统.因此,在Unix机器上创建的符号链接成为Windows开发人员的问题.在windows(msysgit)中,符号链接将转换为文本文件,其中包含指向其所指向文件的路径.相反,我想将符号链接转换为实际的Windows符号链接.
我需要的(更新的)解决方案是:
我没有实现这个,但我相信这是解决这个问题的可靠方法.
问题:
我正在尝试在我的网站的目录树中找到所有符号链接.我知道我可以find
用来做这个,但我无法弄清楚如何递归检查目录.
我试过这个命令:
find /var/www/ -type l
Run Code Online (Sandbox Code Playgroud)
...后来我发现里面的内容/var/www
是符号链接,所以我把命令改为:
find -L /var/www/ -type l
Run Code Online (Sandbox Code Playgroud)
运行需要一段时间,但是我没有匹配.
如何检查子目录?
PowerShell 1.0可以创建类似于Unix的硬链接和软链接吗?
如果这不是内置的,有人可以指向我有一个模仿这个的ps1脚本的网站吗?
这是任何好壳,恕我直言的必要功能.:)
给定绝对或相对路径(在类Unix系统中),我想在解析任何中间符号链接后确定目标的完整路径.奖励积分也可以同时解析〜用户名表示法.
如果目标是目录,则可以将chdir()放入目录然后调用getcwd(),但我真的想从shell脚本而不是编写C帮助程序.不幸的是,shell倾向于试图隐藏用户的符号链接(这是OS X上的bash):
$ ls -ld foo bar
drwxr-xr-x 2 greg greg 68 Aug 11 22:36 bar
lrwxr-xr-x 1 greg greg 3 Aug 11 22:36 foo -> bar
$ cd foo
$ pwd
/Users/greg/tmp/foo
$
Run Code Online (Sandbox Code Playgroud)
我想要的是一个函数resolve(),这样当从上例中的tmp目录执行时,解析("foo")=="/ Users/greg/tmp/bar".
我最好是一个shell脚本用副本替换符号链接,还是有另一种方式告诉Git遵循符号链接?
PS:我知道它不是很安全,但我只想在一些特定情况下这样做.