最近在看chmod
的手册时,看到
chmod 不能改变符号链接文件的权限,而是改变链接文件指向的原文件的权限,
而在递归遍历目录时会忽略符号链接(软链接)文件,也不会改变它指向的原文件的属性,
然后测试的时候发现参数dir/
和dir/*
的效果不太一样。
参数dir/
会忽略dir
和它子目录下的链接;
参数dir/*
会忽略dir
字母下的链接,但会该变dir
下的链接指向的文件的权限;
自己猜测可能dir/*
表示的不是一个参数而是多个,有文件也有目录也有链接,只有在递归这些参数中的目录(比如subdir
)时,才会忽略其中(subdir
)的链接,而dir
下的链接还是会改变它指向的文件的属性。
而dir/
则表示一个参数,所以会忽略dir
及其子目录下的链接文件。不知道我这样理解对吗?
1
wbgbg 2018-07-31 17:10:40 +08:00 1
*是 shell 处理的,shell 会把 dir/* 翻译成 dir/a dir/b dir/c 这样的东西,再传给 chmod 作为参数。所以你传给 chmod 的参数实际上已经没有 dir 这个目录,只有 dir 里的路径了。
|
2
taobao92307 2018-08-01 10:14:14 +08:00
ls 书得对,*在 shell 会自动扩展。
|