linux – Find返回“find:.:Permission denied”,但我不是在搜
发布时间:2020-12-14 01:34:34 所属栏目:Linux 来源:网络整理
导读:我有一个巨大的 shell脚本,我正在排除故障.我经常使用sudo从我的主目录运行脚本.每当执行一次查找时,我都会看到此错误: 发现:.:权限被拒绝 确实root没有访问我的主目录(这是当前工作目录或上面的错误中的.),但我不是要求find在我的主目录中做任何事情而宁
我有一个巨大的
shell脚本,我正在排除故障.我经常使用sudo从我的主目录运行脚本.每当执行一次查找时,我都会看到此错误:
发现:.:权限被拒绝 确实root没有访问我的主目录(这是当前工作目录或上面的错误中的.),但我不是要求find在我的主目录中做任何事情而宁愿完全不管它. 要真正开车回家我跑了这个: sudo find / dev -maxdepth 1-type f 并仍然得到相同的错误.如果删除了-type -f,则会将错误附加到预期结果的末尾.当然,如果我cd / dev没有错误..可能因为root可以访问/ dev.即使我认为它不会导致问题,但它会使脚本看起来很麻烦.如何防止脚本显示这些错误? 解决方法
我跑了:
strace find /dev -maxdepth 1 在GNU / Linux(Ubuntu)上,结果发现find使用fchdir syscall遍历目录树,最后执行fchdir返回原始工作目录.这是一个片段: open(".",O_RDONLY|O_NOCTTY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW) = 4 fchdir(4) = 0 ... irrelevant ... write(1,"/devn",5) = 5 open("/dev",O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 5 fcntl64(5,F_GETFD) = 0x1 (flags FD_CLOEXEC) fchdir(5) = 0 ... potentially more fchdirs ... fchdir(4) = 0 close(4) = 0 我的暗示?运行find之前的cd / tmp(或其他一些完全可访问的目录). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |