我正在尝试更改我的 ~/Documents 文件夹中文件的所有权限,我认为以下小循环会起作用,但它似乎不起作用。谁能帮我?这是循环:
files=~/Documents/*
for $file in $files {
chmod 755 $file }
我试图将其直接写入 bash 命令行,但出现以下错误:
-bash: syntax error near unexpected token `chmod'
感谢您的帮助/建议
最佳答案
使您的文件可执行是有风险的。我建议不要这样做,除非你知道 正是你在做什么。
我会大胆猜测您真的不想让所有的文档文件夹都可执行,而您真正想做的是对每个人都可写的用户进行标准化-对该文件夹中所有内容的其他可读权限。
请注意(正如有人在另一个答案中提到的那样)chmod
命令有它自己的“递归”选项,-R
。 另请注意,您可以将“符号”权限与 chmod 一起使用,而不必只使用八进制。所以:
chmod -R go+r-wx ~/Documents/
将为 ~/Documents/
中和下的所有内容添加 Read 和删除 Write 和 eXecute 函数。
请注意,这将使子目录 可读,但不会提供对其中文件的访问(因为目录上的可执行位就是这样做的)。所以你可能想使用两个命令:
find ~/Documents/ -type d -exec chmod 755 {} \;
find ~/Documents/ -type f -exec chmod 644 {} \;
第一行只在目录上运行chmod
,使它们既可读又可访问。第二行仅影响您的文件,使全世界都可以读取它们。
关于bash 循环更改权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11486249/