有没有在PHP或Perl中找到当前文件的所有符号链接的方法?如何找到当前文件的符号链接?
4
A
回答
7
没有遍历文件系统寻找所有的符号链接,然后检查它们的目的地,没有。但是,如果你仍然要做到这一点,这是很直接:
use strict;
use warnings;
use File::Find;
my $target = 'the filename you want to find links to';
finddepth(
sub {
return if not -l $File::Find::name;
print "found $File::Find::name!\n" if readlink($File::Find::name) eq $target;
},
'/'
);
4
不是没有走文件系统或使用find
(它本身走FS)。符号链接实际上并没有以任何有意义的方式链接到文件;它们只包含一个真实文件的路径。这些链接可以在任何地方,操作系统并不一定知道它们,直到它们在路径中使用。
2
不是没有搜索整个文件系统。
符号链接(在Linux中至少)基本上是指针。他们从一个地方指向另一个地方,但是他们指向的位置在没有详尽搜索的情况下无法知道指向它的位置。
您可以通过完全搜索来完成此操作,但根据您的系统,它可能很容易需要很长时间。
2
在PHP中,您可以 - 理论上 - 使用RecursiveDirectoryIterator并将其设置为从文件系统根目录遍历。然后,您可以检查currently iterated filesystem item is a link如果是的话,用readlink,看看它指出:
$fsi = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('/'),
RecursiveIteratorIterator::SELF_FIRST
);
foreach ($fsi as $fso) {
if ($fso->isLink()) {
echo readlink($fso->getPathname());
}
}
在实践中,你可能不会被允许做从用户执行PHP脚本。
+1
感谢您的帮助:-) – Eric 2010-11-09 22:34:48
相关问题
- 1. 符号链接:找到链接到该文件
- 2. 查明当前文件系统是否支持符号链接
- 3. 隐藏符号链接文件夹到硬链接文件夹
- 4. 如何获取当前符号链接目录的父目录?
- 5. 如何链接到当前的PHP文件
- 6. 未找到符号 - 链接到hdf库
- 7. 在Python中查找符号链接文件的文件类型
- 8. 如何将文件夹切换到svn中的符号链接
- 9. 找不到符号链接库
- 10. 未找到Xcode 8符号链接sqlite3
- 11. 链接期间未找到符号
- 12. 链接符号没有找到
- 13. 用Python找到坏符号链接
- 14. ACK没有找到符号链接
- 15. 如何找到PWD以外的所有符号链接? UNIX
- 16. 符号链接到文件夹中的最新文件
- 17. 如何找到指向另一个符号链接的图标的符号链接
- 18. python符号链接指向的文件
- 19. ClearCase的符号链接文件从
- 20. 创建文件夹的符号链接
- 21. 如果该链接链接到当前页面,则链接到目标链接?
- 22. 链接到当前页html
- 23. 找出一个文件是否是PowerShell中的符号链接
- 24. 如何确定符号链接指向的文件的路径?
- 25. Tomcat与子文件夹符号链接
- 26. 找出符号链接的位置,Linux?
- 27. 查找目录中的符号链接
- 28. 如何忽略符号链接中的目录索引文件?
- 29. 如何让svn忽略文件夹的符号链接
- 30. 如何为不存在的文件夹创建符号链接?
谢谢,我希望避免扫描整个文件系统,但我很感激代码:-) – Eric 2010-11-09 22:34:04