我正在尝试检查bash中是否存在符号链接.这是我尝试过的.
mda=/usr/mda
if [ ! -L $mda ]; then
echo "=> File doesn't exist"
fi
mda='/usr/mda'
if [ ! -L $mda ]; then
echo "=> File doesn't exist"
fi
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.如果'!' 被遗漏,它永远不会触发.而如果 '!' 在那里,它每次都会触发.
是否有任何操作系统提供一种机制(系统调用 - 而不是命令行程序)来更改符号链接(符号链接)引用的路径名 - 除了取消旧链接和创建新链接之外的路径名?
POSIX标准没有.Solaris 10没有.MacOS X 10.5(Leopard)没有.(我很可能确定AIX和HP-UX都没有.从这个Linux系统调用列表来看,Linux也没有这样的系统调用.)
有什么事吗?
(我期待答案是"不".)
由于证明负面是困难的,让我们重新组织这个问题.
如果您知道某些(类Unix)操作系统没有列出系统调用来重写符号链接的值(返回的字符串readlink()
)而不删除旧的符号链接并创建一个新的符号链接,请添加它 - 或者它们 -在答案中.
你好,我需要在linux中这样做:
怎么做?谢谢!
我在Ubuntu上设置Apache时遇到了一些麻烦.我一直在关注这个指南.
# /usr/sbin/apache2 -v
Server version: Apache/2.2.17 (Ubuntu)
Server built: Feb 22 2011 18:33:02
Run Code Online (Sandbox Code Playgroud)
我的公共目录/ var/www可以成功提供并执行放在其中的PHP页面.但是,我想在/ var/www中创建一个符号链接,指向我的主文件夹中的目录并在那里提供页面.
[root /var/www]# ll
total 36
drwxr-xr-x 3 root root 4096 2011-09-11 14:22 .
drwxr-xr-x 14 root root 4096 2011-06-04 22:49 ..
lrwxrwxrwx 1 root root 16 2011-09-11 13:21 about -> /root/site/about
Run Code Online (Sandbox Code Playgroud)
当我尝试在浏览器上访问/关于我时,我得到了
Forbidden
You don't have permission to access /about on this server.
Run Code Online (Sandbox Code Playgroud)
据我所知,我为我想要提供的文件提供了足够的权限:
[root ~/site/about]# ll
total 24
drwxr-xr-x 5 root root 4096 2011-09-11 13:20 .
drwxr--r-- 3 root root …
Run Code Online (Sandbox Code Playgroud) 当我尝试在我的/ usr/bin文件夹中对二进制文件进行符号链接时,我得到一个不允许操作的错误:
sudo ln -s /usr/bin/python2.7 /usr/bin/python2
ln: /usr/bin/python2: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
即使作为sudo,我也会收到此错误.
这是一个相当基本的*nix问题:
给定以下符号链接创建:
ln -s /usr/local/projects/myproject/ myproject
Run Code Online (Sandbox Code Playgroud)
...从我的主目录/ home/jvf /,进入myproject符号链接给我一个pwd / home/jfv/myproject /.现在,我想进入我已符号链接的目录的父目录,但cd ..命令只会将我带回我的主目录/ home/jfv /.反正有没有逃避我输入的符号链接路径,而是有一个pwd等于myproject目录的实际路径.也就是说,将我的pwd从/ home/jfv/myproject /改为/ usr/local/projects/myproject /?
谢谢 :)
我刚刚创建了符号链接sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
,我想知道如果我愿意如何摆脱它.我该怎么办?
是否有一种方法可以检测目录/文件/符号链接/等.实体(更广义)存在?
我需要一个函数,因为我需要检查一个可能是目录,文件或符号链接的路径数组.我知道File.exists?"file_path"
适用于目录和文件,但不适用于符号链接(即File.symlink?"symlink_path"
).
所以我创建了一个符号链接:
ln -s /location/to/link linkname
Run Code Online (Sandbox Code Playgroud)
现在我想更改符号链接链接的位置.我怎么做?有没有办法做到这一点而不是先删除它?