我有一个以下文件夹:
问题在于,当我访问文件夹B时,由于文件夹B位于文件夹A内,因此我可以无限深入(例如,文件夹A>文件夹B>文件夹B>文件夹B)。
通过文件夹A访问文件夹B后,有什么方法可以忽略它吗?
非常感谢您!
答案 0 :(得分:0)
find
命令可检测符号链接循环,并将显示警告消息,而不是反复遍历它们。例如,使用-L
选项跟随符号链接可能会显示以下警告:
$ find -L /some/path
find: File system loop detected; `/some/path/link' is part of the same file system loop as `/some/path'.
在手册页中:
The find utility shall detect infinite loops; that is,
entering a previously visited directory that is an ancestor of
the last file encountered. When it detects an infinite loop,
find shall write a diagnostic message to standard error and
shall either recover its position in the hierarchy or
terminate.
答案 1 :(得分:0)
致所有看这里的程序员(cmdline 工具问题应该转至 unix.stackexchange.com):
您应该知道 Linux/BSD 函数 fts_open()
为您提供了一个易于使用的迭代器,用于遍历所有子目录内容,同时还检测此类符号链接递归。
大多数命令行工具使用这个函数来为他们处理这种情况。那些不经常遇到符号链接递归问题的人,因为“手动”执行此操作很困难(任何知道它的人都应该改用上述函数)。