linux下,ubuntu里使用find函数查找文件,显示permission denied
本帖最后由 猪猪虾 于 2023-7-19 11:06 编辑我尝试过以下方法
find / -name Canvas.C
sudo find / -name Canvas.C
find / -name Canvas.C2>/dev/null
whereis Canvas.C
which Canvas.C
结果要不就是啥也没有,要不就是permission denied
回复1:sudo行不通
回复2:我进入root里也没有权限
在Linux下使用find命令查找文件时,如果出现permission denied错误,表示您没有足够的权限来访问某些目录或文件。这是由于默认情况下,find命令会尝试搜索整个文件系统,包括需要特殊权限才能访问的目录。
为了解决此问题,您可以尝试以下方法:
1. 使用sudo命令:在find命令之前加上sudo,以使用管理员权限运行该命令。例如:
sudo find / -name Canvas.C
2. 重定向错误输出:可以使用2>/dev/null将错误输出重定向到空设备,这样可以隐藏permission denied的错误消息。例如:
find / -name Canvas.C 2>/dev/null
请注意,在使用sudo命令时需要输入管理员密码。另外,值得注意的是,使用sudo命令需要小心,确保您知道自己在做什么,以免对系统造成不必要的风险。
希望以上解释和方法对您有帮助!如果您有任何其他问题,请随时提问。 这种情况可能是由于你在尝试访问一些你没有权限访问的文件或目录。这些文件或目录可能被系统保护,或者是属于其他用户的。
sudo find / -name Canvas.C这个命令应该能够找到所有的文件,包括那些你没有权限访问的文件,因为sudo命令会让你以超级用户的身份执行命令。如果这个命令没有返回任何结果,那么可能的原因就是你的系统中没有叫做Canvas.C的文件。
find / -name Canvas.C 2>/dev/null这个命令会忽略所有的错误信息,包括permission denied的错误。这个命令只会返回那些你有权限访问的文件。如果你没有权限访问的文件夹中有一个叫做Canvas.C的文件,那么这个文件就不会被这个命令找到。
whereis Canvas.C和which Canvas.C这两个命令是用来查找可执行文件的,而不是所有的文件。如果Canvas.C是一个可执行文件,并且在你的PATH环境变量所指定的目录中,那么这两个命令应该能够找到它。如果Canvas.C不是一个可执行文件,或者不在PATH环境变量所指定的目录中,那么这两个命令就找不到它。
所以,你可以尝试使用sudo find / -name Canvas.C命令来查找文件,如果还是找不到,那么可能的原因就是你的系统中没有叫做Canvas.C的文件。 权限不够,要么在命令前面加上 sudo,要么 su 切换到 root 用户 isdkz 发表于 2023-7-19 10:50
这种情况可能是由于你在尝试访问一些你没有权限访问的文件或目录。这些文件或目录可能被系统保护,或者是属 ...
不行啊,用sudo 还是显示没有权限,截图看我的主贴,我没有权限在回复里发照片 本帖最后由 isdkz 于 2023-7-19 11:02 编辑
猪猪虾 发表于 2023-7-19 10:54
不行啊,用sudo 还是显示没有权限,截图看我的主贴,我没有权限在回复里发照片
你第一个截图不是用的root权限,所以很多文件都没有权限访问
sudo那个图片只有一个是没有权限访问的,有一些进程文件即使是root用户也没有权限访问,这很正常
因为控制权限的除了用户,还有selinux,你把selinux关了应该就没有问题了
isdkz 发表于 2023-7-19 11:00
你第一个截图不是用的root权限,所以很多文件都没有权限访问
sudo那个图片只有一个是没有权限访问的 ...
图在上面,我进入root也不行,我试试selinux
这个文件应该是存在的,root保存的.c文件,他显示已经存在,不让我再保存,可是我找不到在哪里 猪猪虾 发表于 2023-7-19 11:08
图在上面,我进入root也不行,我试试selinux
这个文件应该是存在的,root保存的.c文件,他显示已经存 ...
正常来说 .c 是小写呀,你打了大写,linux是区分大小写的 isdkz 发表于 2023-7-19 11:17
正常来说 .c 是小写呀,你打了大写,linux是区分大小写的
他是大写,root自己存的
页:
[1]