命令
$ chmod -R 700 ./.*
搜索并尝试chmod
上方的文件和目录pwd
。为什么?
预期结果:考虑pwd
是/home/user
,我希望将.
中的第一个./.*
替换为/home/user
。然后我希望将chmod
递归地(-R
)应用于中以点(.*
)开头的所有文件/home/user
,因此:$ chmod -R 700 /home/user/.*
全部一起。
我收到一系列错误,例如:
chmod: cannot access `./../otheruser/file': Permission denied
这是因为..
比赛而发生的吗.*
?
答案1
./.*
也匹配./..
,导致chmod -R
尝试递归中的所有内容..
。
添加:
如果您只想要当前目录中的点文件和目录,请尝试.[!.]*
,它匹配以 开头.
并且后面至少有一个非点字符的所有内容。
如果您想要所有点文件位于当前目录树中的任何位置,您可以使用find
这里所示的$(...)
命令替换将的输出粘贴find
回命令行作为的参数chmod
。
chmod 700 $(find -name ".[!.]*")