linux find 无法遍历软连接文件

当find命令遇到软链接时,它不会递归进入,而是将其视为普通文件处理。这种情况可能导致在有相互链接的文件夹(如A链接到B,B又链接回A)中出现堆栈溢出。为解决此问题,可以限定递归深度,例如使用`find**/*/*/*/**/*/*/*-typef`来遍历文件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

find无法进入文件夹,无法递归
当出现软连接的时候,会将这个文件当做“一个文件“,而不会继续进行深入

定位:

对无法递归的文件夹执行ll
在这里插入图片描述
可发现这个问文件的类型不是d,而是l,是软连接。后面带连接符号。
 
find对于链接文件不会进行递归进入,而是把这个链接文件当做文件进行处理,导致无法进入。

解决方案

简单来说,可能有A链接文件链接B,B链接文件又反向链接A,导致堆栈溢出。

如果知道递归深度的话,可以通过加入*的方式遍历

find * *、*/* /*/* */*/*/* -type f 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值