我在 Ubuntu 8.10 上,通常通过在 Apache2 文档根目录中创建指向目标目录的软链接,与局域网上的 ppl 共享我的内容。所以如果我想分享我的视频目录,我会
光盘 /var/www
ln -s ~/视频/视频
然后 http:/// 会将视频目录列出给其他用户。
当我为我的外部 USB 驱动器尝试同样的事情时,我遇到了问题。链接创建得很好。从命令行我可以像使用其他链接一样使用该链接,但 apache 不会在浏览器上显示此目录。我已经检查了所有权和特权。他们都很好。
例如,如果一个符号链接
a -> b
b -> c
c -> d
Run Code Online (Sandbox Code Playgroud)
比如说,a 的符号链接级别是 3。
那么,是否有任何实用程序可以获取此信息?而且,我还想获得符号链接的扩展细节,它会显示如下内容:
1. /abc/xyz is expanded to /abc/xy/z (lrwx--x--x root root)
2. /abc/xy/z is expanded to /abc/xy-1.3.2/z (lrwx--x--x root root)
3. /abc/xy-1.3.2/z is expanded to /abc/xy-1.3.2/z-4.6 (lrwx--x--x root root)
4. /abc/xy-1.3.2/z-4.6 is expanded to /storage/121/43/z_4_6 (lrwx--x--x root root)
5. /storage/121/43/z_4_6 is expanded to /media/kitty_3135/43/z_4_6 (lrwx--x--x root root)
Run Code Online (Sandbox Code Playgroud)
所以我可以用符号链接进行诊断。任何的想法?
假设我有文件 A,使用“ln -s A B”,我有 B。
当我打开、编辑和保存 B 时,现在 B 不再是符号链接。这只是 A 的新副本。
我使用的编辑器是 Mac 上的“TextMate”。
我有许多目录,它们都是我创建的 Web 脚本的演示,重要的是它们都共享资源。因此,我创建了一个全局资源目录,并将该目录象征性地链接到每个演示文件夹中。
我想要做的是将每个演示目录压缩到一个.zip
文件中,我遇到的问题是符号链接保存在 zip 文件中,而在另一台机器上,资源目录根本不存在。
有没有办法压缩演示文件夹并解析任何符号链接,以便解压缩文件时看起来好像它们是标准文件结构的一部分?
非常感谢 :-)
在 Vista/7 中,如果我尝试使用以下命令删除快捷方式 -:
del "%allusersprofile%\Desktop\MyShortcut.lnk"
Run Code Online (Sandbox Code Playgroud)
...Windows 将此文件夹视为空文件夹,并且不会删除该文件。
环境变量“allusersprofile”指向“C:\ProgramData”,但“Desktop”实际上是指向 C:\Users\Public\Desktop 文件夹的软符号链接。
问题似乎是这些软链接只是 Window Explorer 的快捷方式,无法被 cmd 提示或批处理文件识别。
我能看到的唯一解决方案是执行以下操作-:
经验值:
del "%allusersprofile%\Desktop\MyShortcut.lnk"
Run Code Online (Sandbox Code Playgroud)
远景/7:
del "%PUBLIC%\Desktop\MyShortcut.lnk"
Run Code Online (Sandbox Code Playgroud)
两种操作系统有没有通用的解决方案?
我想为文件创建一个简单的符号链接。
如果我从要创建符号链接的目录中运行命令,它会完美运行:
/path/to/link $ ln -s /path/to/file .
Run Code Online (Sandbox Code Playgroud)
但是如果我在任何其他目录中,它每次都会创建一个断开的链接:
/any/other/path $ ln -s /path/to/file /path/to/link
Run Code Online (Sandbox Code Playgroud)
是否ln -s
要求您位于某个目录中,还是我遗漏了什么?运行 Ubuntu 10.04。
更新:对于路径是相对路径还是绝对路径的混淆,我们深表歉意。他们是相对的,正如他们在回答中提到的那样,这是我问题的根源。谢谢!
在我的电脑上我创建了一个硬链接
mklink /h git-link.exe git.exe
Hardlink created for git-link.exe <<===>> git.exe
Run Code Online (Sandbox Code Playgroud)
现在它们都占用空间
2012-04-17 12:14 AM 6,905,039 git-link.exe
2012-04-17 12:14 AM 6,905,039 git.exe
Run Code Online (Sandbox Code Playgroud)
这有什么意义?为什么不直接复制?
理想情况下,我正在寻求一种重命名我所有动漫的方法,同时保持原始文件的完整性,而无需使用额外的数据空间
我能想到的解决方案是创建一个到另一个位置的重复文件夹路径,然后将每个文件符号链接到新的重复文件夹路径中,以便为媒体刮刀重命名以识别它们
我的问题是如何为文件夹中的每个文件创建一个指向新位置的符号链接。
使用 FreeBSD 9,以下对我不起作用:
cd ../bar
cp --symbolic-link ../foo/* .
Run Code Online (Sandbox Code Playgroud)
单独进行(但是这是文件重命名,现在不需要)
ln -s "/ZFSRaidz/Multimedia/Anime/Naruto_Shippuuden/[HorribleSubs] Naruto Shippuuden - 244 [480p].mkv" "/ZFSRaidz/XBMC/Multimedia/Anime/Naruto_Shippuuden/Naruto Shippuuden-244.mkv"
Run Code Online (Sandbox Code Playgroud) 我通过命令创建了一个链接
sudo ln -s /etc/Sublime\ Text/ /usr/bin/subl
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试将其删除
sudo rm -r /usr/bin/subl/
Run Code Online (Sandbox Code Playgroud)
但它告诉我
rm: cannot remove `/usr/bin/subl': Too many levels of symbolic links
Run Code Online (Sandbox Code Playgroud)
我试过了,-rf
但这没有帮助。:(
有问题的命令是:
sudo ln -s /usr/lib/x86_64-linux-gnu/foo.so /usr/lib/
Run Code Online (Sandbox Code Playgroud)
我读过这篇关于 的文章ln
,它表明后一个参数可以是名称或目录。在这种情况下,由于它是一个目录,我的假设是上述命令导致访问/usr/lib/foo.so
被定向到/usr/lib/x86_64-linux-gnu/foo.so
. 如果这是真的,那么在后一个参数中省略名称与显式包含名称(例如,/usr/lib/foo.so
)的价值是什么?这只是一个常见的捷径,还是这样做有什么价值?此外,以这种方式创建符号链接是否有任何其他效果,如果名称包含在后一个参数中则不会?
symbolic-link ×10
linux ×5
hardlink ×2
ln ×2
ubuntu ×2
unix ×2
windows-7 ×2
batch-file ×1
cp ×1
freebsd ×1
linux-mint ×1
macos ×1
mklink ×1
rm ×1
unattended ×1
windows ×1