“chmod 777 .* -R” 是否会 chmod 父目录 (..)?

“chmod 777 .* -R” 是否会 chmod 父目录 (..)?

是否chmod 777 .* -R递归地改变父目录(..)的模式?

答案1

是的。(我吃尽了苦头才学会的。)

答案2

是的。

使用带有通配符(*)的递归选项(-r)几乎总是一个坏主意。

如果你尝试这样做:

user@box path/$ foo -r .*

这可能意味着你也先这样做了,然后才意识到它错过了隐藏文件:

user@box path/$ foo -r *

最有可能你想做的是

user@box path/$ cd ..
user@box $ foo -r path/

此外,chmod 777这始终是一个坏主意。

答案3

改用 .??*。

答案4

使用 zsh(它不匹配任何 glob 中的 . 或 ..),或使用 .[^.]* .??* 匹配所有隐藏文件。 glob 的第一部分匹配以点开头且下一个字符不是点的任何文件,从而避免使用 . 和 .。第二部分匹配以点开头且长度至少为三个字符的任何文件。

要匹配除 . 和 .. 硬链接之外的所有文件,请使用 * .[^.]* .??* ,或(仅在 Z shell 上) . .*

相关内容