发现:.:权限被拒绝
确实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) = 4fchdir(4) = 0... irrelevant ...write(1,"/dev\n",5) = 5open("/dev",O_RDONLY|O_NONBLOCK|O_LARGEfile|O_DIRECTORY|O_CLOEXEC) = 5fcntl64(5,F_GETFD) = 0x1 (flags FD_CLOEXEC)fchdir(5) = 0... potentially more fchdirs ...fchdir(4) = 0close(4) = 0
我的暗示?运行find之前的cd / tmp(或其他一些完全可访问的目录).
总结以上是内存溢出为你收集整理的linux – Find返回“find:.:Permission denied”,但我不是在搜索全部内容,希望文章能够帮你解决linux – Find返回“find:.:Permission denied”,但我不是在搜索所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)