这是 Ubuntu 服务器 10.04 64 和 samba 3.4.7。
我有一个共享目录/home/mit/share和另一个/home/temp链接到共享目录的目录:
ln -s /home/temp /home/mit/share/temp
Run Code Online (Sandbox Code Playgroud)
但是在 Windows 上,使用 Internet 后,我无法打开S:/temp,但在 Linux 上可以按/home/mit/share/temp预期访问。
如果我链接内部目录/home/mit/share/temp,这会起作用,所以我猜 samba 限制使用共享目录外部/上方的链接跳转。
编辑:
另请参阅标题为Ubuntu + latest samba version, symlinks no longer work on share installed in Windows 的问题。
似乎最好放入unix extensions = no全局部分,follow symlinks = yes并且wide links = yes仅放入您真正需要的共享部分。
该unix extension标志必须位于全局部分而不是单个共享部分。但出于安全原因,最好仅在需要的地方使用其他选项,而不是全局使用。
我有一个带有指向其他目录的符号链接的目录。我想使用 tar 命令归档符号链接,而不是作为链接,而是作为包含它们引用的目录文件的档案。我怎样才能做到这一点?
是否有 Unix 命令从可能包含符号链接的相对路径中获取绝对(和规范化)路径?
我已经使用ln符号链接写了很多年了,但我仍然把参数的顺序弄错了。
这通常让我写:
ln -s a b
Run Code Online (Sandbox Code Playgroud)
然后看着输出提醒自己。
我总是想像a -> b我读它时的样子,但实际上恰恰相反b -> a。这感觉违反直觉,所以我发现我总是在怀疑自己。
有没有人有任何提示可以帮助我记住正确的顺序?
我有一个实用程序,由几个目录组成,其中包含一些 bash 脚本和支持文件,这些文件将部署到多台机器上,可能在每台机器上的不同目录中。脚本需要能够引用相对于自身的路径,因此我需要能够获取当前正在执行的文件的路径。
我知道dirname $0直接调用我的脚本时可以完美运行的习语。不幸的是,人们希望能够从完全不同的目录创建指向这些脚本的符号链接,并且仍然具有相对路径逻辑的工作。
整体目录结构示例如下:
/
|-usr/local/lib
| |-foo
| | |-bin
| | | |-script.sh
| | |-res
| | | |-resource_file.txt
|-home/mike/bin
| |-link_to_script (symlink to /usr/local/lib/foo/bin/script.sh)
Run Code Online (Sandbox Code Playgroud)
我怎样才能可靠地引用/usr/local/lib/foo/res/resource_file.txt来自script.sh它是否被调用/usr/local/lib/foo/bin/script.sh或~mike/bin/link_to_script?
我有一个指向一个目录中文件的符号链接。我想在另一个目录中有相同的链接。如何复制符号链接?
我试图 cp 符号链接,但这会复制它指向的文件而不是符号链接本身。
如果我这样做,pwd我会注意到它使用了我用来进入当前目录的任何符号链接。我可以让它告诉我我所在的“真实”目录......即从根目录到当前目录的路径而不使用任何符号链接吗?
我正在创建一个 shell 脚本,它将获取文件的文件名/路径并确定该文件是符号链接还是硬链接。
唯一的问题是,我不知道如何查看它们是否是硬链接。我创建了 2 个文件,一个是硬链接,一个是符号链接,用作测试文件。但是我如何确定一个文件是一个硬链接还是一个 shell 脚本中的符号?
另外,我如何找到符号链接的目标分区?因此,假设我有一个链接到不同分区的文件,我如何找到该原始文件的路径?
我编写了一个小 bash 脚本来查看当我继续跟踪指向同一目录的符号链接时会发生什么。我期待它要么创建一个很长的工作目录,要么崩溃。但结果让我大吃一惊...
mkdir a
cd a
ln -s ./. a
for i in `seq 1 1000`
do
cd a
pwd
done
Run Code Online (Sandbox Code Playgroud)
一些输出是
${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a
${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a
${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a
${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a
${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a
${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a
${HOME}/a
${HOME}/a/a
${HOME}/a/a/a
${HOME}/a/a/a/a
${HOME}/a/a/a/a/a
${HOME}/a/a/a/a/a/a
${HOME}/a/a/a/a/a/a/a
${HOME}/a/a/a/a/a/a/a/a
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?