为什么 chmod 不能识别文件操作符

为什么 chmod 不能识别文件操作符

我有一个目录(称为服务器),其中的权限不知何故被弄乱了,所以我需要将所有权限改回来。我当前的命令是

sudo chmod -R -c a+w *

但是 chmod 只是说chmod: cannot access '*': No such file or directory

我在这里做错了什么?我是否忽略了一些显而易见的东西?

答案1

仅当当前文件夹中没有任何文件时才会发生此错误。执行ls命令来检查它。

答案2

.也许您搞错了“ ”(当前目录)或“ ..”(父目录)的权限。

/bin/ls -ld . ..

应该显示类似

walt@bat:~(0)$ /bin/ls -ld . ..
drwx------ 255 walt walt 282624 Dec  2 13:50 .
drwxr-xr-x   7 root root  36864 Sep 10 12:08 ..
walt@bat:~(0)$ cd tmp
walt@bat:~/tmp(0)$ /bin/ls -ld . ..
drwx------  51 walt walt  12288 Oct 31 01:27 .
drwx------ 255 walt walt 282624 Dec  2 13:50 ..
walt@bat:~/tmp(0)$ 

man -a chmod

答案3

* 文件通配符不会自动扩展以点 (.) 开头的文件。任何此类文件都不会包含在内,并且如果所有文件/目录都以点开头,则不会包含任何文件/目录,从而产生错误消息。

答案4

我修复了它!结果发现不知何故我的server文件夹归 root 所有,这意味着 chmod 无法看到它。我chown过去常常将权限改给我自己。

相关内容