我在想......但是:
如果你有文件〜/ foo / foo.jpg 并将其移动并重命名为〜/ bar.jpg ,有没有办法建立符号链接(在〜/ 内的原始名称和结构,并指向〜/ bar.jpg ?
~/foo$ ls
foo.jpg
~/foo$ mv foo.jpg ~/bar.jpg
~/foo$ cd ~
~$ ls
bar.jpg
~$ ln -s bar.jpg 'foo/foo.jpg'
~$ ls -l
bar.jpg
foo/foo.jpg -> bar.jpg
如果没有上述方法,我可以创建一个硬链接〜/ bar.jpg 指向〜/ foo / foo.jpg 。但我宁愿没有目录 foo 或文件 foo.jpg ;只是他们所处的象征性联系。
答案 0 :(得分:1)
我的Unix技能很不稳定,但根据我对符号链接的理解,无法在重命名的文件后面建立符号链接。这是因为符号链接基本上只指向文件的名称,并且对它没有任何了解;当它指向的文件被移动/删除时,它只指向不再存在的文件的名称。
正如您所提到的,您可以通过创建硬链接来解决您的问题。
参考:http://www.nixtutor.com/freebsd/understanding-symbolic-links/
答案 1 :(得分:0)
编辑:在澄清之后,您的问题可能会重写为:“符号链接名称(或任何Unix / Linux文件名)是否包含正斜杠/
?”< / em>的
答案是:否。正斜杠/
是hard-wired at the file system level作为路径分隔符,将目录及其内容分开。
但也许这可以帮到你:
在某些情况下,目录的符号链接很有用。以下现有路径
/a/b/c/d
可以符号链接到/somewhere
$ ln -s /a /somewhere
以便/somewhere/a/b/c/d
成为有效的文件系统路径:
$ ls /somewhere/
a
$ ls /somewhere/a/
b
# ... etc
我认为这就像你能得到的一样接近。