我正在运行一个脚本,它遍历我的 Linux 系统上的所有文件并创建了一些关于它们的元数据,当它遇到一个损坏的符号链接时它会抛出一个错误。
我是 *nix 的新手,但我了解链接文件背后的主要思想以及断开的链接是如何存在的。据我所知,它们就像街上的垃圾一样。我正在删除的程序不够聪明,无法告诉包管理器存在并属于它,或者在升级中留下的东西。起初,我开始调整我正在运行的脚本以跳过它们,然后我想,'好吧,当我们在这里时,我们可以随时删除它们......'
我正在运行Ubuntu 14.04 (Trusty Tahr)。我看不出有什么理由不这样做,但是在我继续在我的开发系统上运行它之前,是否有任何理由这实际上可能是一个糟糕的主意?损坏的符号链接是否有我不知道的用途?
Gil*_*il' 72
符号链接断开的原因有很多:
如果您可以确定符号链接属于第一类,那么当然可以继续删除它。否则,弃权。
递归遍历目录并关心文件内容的程序通常应该忽略损坏的符号链接。
vin*_*c17 20
不要盲目删除所有悬空的符号链接。它们可能只是为了携带一些信息而存在,并且可能比普通文件更安全,因为符号链接的创建是原子的。
例如,Firefox 创建一个锁文件“lock”,它是一个符号链接,其值的形式类似于“IP_address:+PID”。
无论是fnord和加特林Web服务器使用Unix文件系统作为其配置数据库(而不是,比方说,微软的IIS,它使用Windows注册表,或Apache,它采用了复杂的对解析配置文件)。
例如,虚拟主机只是目录,创建一个新的虚拟主机就像
mkdir www.example.com:80
Run Code Online (Sandbox Code Playgroud)
配置要提供哪些文件?
chmod o+r file_that_should_be_served
chmod o-r secret_passwords
Run Code Online (Sandbox Code Playgroud)
配置哪些文件作为 CGI 执行,哪些文件提供服务?
chmod a-x plain_file.html
chmod a+x cgi_script.html
Run Code Online (Sandbox Code Playgroud)
最后(与这个问题相关):配置重定向?
ln -s 'http://www.google.com/?q=awesome+query+site:www.example.com' search.html
Run Code Online (Sandbox Code Playgroud)
您现在将拥有一个称为search.html
无处指向的符号链接,但它对您网站的工作至关重要。