请考虑以下命令行代码段:
$ cd /tmp/
$ mkdir dirA
$ mkdir dirB
$ echo "the contents of the 'original' file" > orig.file
$ ls -la orig.file
-rw-r--r-- 1 $USER $USER 36 2010-12-26 00:57 orig.file
# create symlinks in dirA and dirB that point to /tmp/orig.file:
$ ln -s $(pwd)/orig.file $(pwd)/dirA/
$ ln -s $(pwd)/orig.file $(pwd)/dirB/lorig.file
$ ls -la dirA/ dirB/
dirA/:
total 44
drwxr-xr-x 2 $USER $USER 4096 2010-12-26 00:57 .
drwxrwxrwt 20 root root 36864 2010-12-26 00:57 ..
lrwxrwxrwx 1 $USER …Run Code Online (Sandbox Code Playgroud) 我有一个对象,我想使用不同的键来解决,而不是实际复制对象本身,如Linux中的符号链接.Amazon S3提供这样的东西吗?
我有一个字符串,其中包含现有符号链接的文件系统路径.我想获得此链接指向的路径.
基本上我想要通过这些hackery得到同样的东西:
s = "path/to/existing/symlink"
`ls -ld #{s}`.scan(/-> (.+)/).flatten.last
Run Code Online (Sandbox Code Playgroud)
但是我想在没有炮轰的情况下这样做.
我试图在/ etc/nginx /中启用站点和站点可用目录中包含服务器块的配置文件之间创建软链接.
我使用的命令是:
sudo ln -s sites-available/foo.conf sites-enabled/
Run Code Online (Sandbox Code Playgroud)
当我执行时:
ls -l
Run Code Online (Sandbox Code Playgroud)
结果是:
lrwxrwxrwx 1 parallels parallels 27 Aug 6 20:44 immigrationinformation.conf -> immigrationinformation.conf
Run Code Online (Sandbox Code Playgroud)
其中immigrationinformation.conf -> immigrationinformation.conf部分有红色字体木炭.
当我尝试访问此软链接时,我被告知它已损坏.
当我在sites-available目录中创建软链接时,即
sudo ln -s sites-available/foo.conf sites-available/foo_link.conf
Run Code Online (Sandbox Code Playgroud)
它正常工作.但是,如果我将其移动到启用站点的目录,则链接将再次中断.
我可以通过文件管理器GUI创建软链接,但不能通过命令行创建.我也可以创建没有问题的硬链接.
我怀疑这是一个权限问题所以我已经玩过将所有权限设置为两个目录和目录本身的777,并且还将所有者更改为除root之外的其他内容,但仍然没有运气.
我非常感谢任何帮助,谢谢.
我运行find并迭代结果,[ \( -L $F \) ]以收集某些符号链接.
我想知道在这种情况下是否有一种简单的方法来确定链接是否被破坏(指向一个不存在的文件).
这是我的代码:
FILES=`find /target/ | grep -v '\.disabled$' | sort`
for F in $FILES; do
if [ -L $F ]; then
DO THINGS
fi
done
Run Code Online (Sandbox Code Playgroud) 如何获取任何给定路径bash并将其转换为规范形式,取消引用路径中可能包含的任何符号链接?
例如:
~$ mkdir /tmp/symtest
~$ cd /tmp/symtest/
/tmp/symtest$ mkdir -p foo/bar cat/dog
/tmp/symtest$ cd foo/bar/
/tmp/symtest/foo/bar$ ln -s ../../cat cat
/tmp/symtest/foo/bat$ cd ../../
/tmp/symtest$ tree
.
|-- cat
| `-- dog
`-- foo
`-- bar
`-- cat -> ../../cat
6 directories, 0 files
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得完整的规范路径/tmp/symtest/foo/bar/cat(即:)/tmp/symtest/cat?
在localhost上.我有以下目录结构:
/share/www/trunk/wp-content/plugins/otherfolders
/share/www/portfolio/wp-content/symlink
symlink符号链接在哪里/trunk/.../plugins/.基本上,这是因为我需要测试多个WordPress安装并设置它们,但我不想移动插件并将它们复制并粘贴到任何地方.
但是,有时我需要爬行目录树以包含配置文件:
$root = dirname(dirname(dirname(dirname(__FILE__))));
if (file_exists($root.'/wp-load.php')) {
// WP 2.6
require_once($root.'/wp-load.php');
}
Run Code Online (Sandbox Code Playgroud)
该文件夹始终解析为:
/share/www/trunk
即使正在执行插件并将其包含在内
/share/www/portfolio/.
在PHP中是否可以将share/www/portfolio目录中的文件从符号链接中执行的脚本包含到/share/www/trunk/.../plugins目录中?
虽然这个问题只发生在我的测试服务器上,但我希望有一个安全可分发的解决方案,因此不能选择爬上额外的级别.
在Linux机器上创建符号链接到另一个符号链接是否有任何副作用(特别是在性能方面)?
有没有人知道从Python的win32版本中创建/读取符号链接的方法?理想情况下,应该有最少量的平台特定代码,因为我需要我的应用程序是跨平台的.
我创建了一个符号链接:
sudo ln -s /some/dir new_dir
Run Code Online (Sandbox Code Playgroud)
现在我想覆盖符号链接以指向新位置,它不会覆盖.我试过了:
sudo ln -f -s /other/dir new_dir
Run Code Online (Sandbox Code Playgroud)
我可以随时sudo rm new_dir,但我宁愿相应地覆盖它,如果可能的话.有任何想法吗?