在Bash中不要使用.*来匹配文件

时间:2019-11-20 08:52:58  来源:igfitidea点击:

在bash shell中进行文件匹配时,需要注意避免使用 .*。因为会匹配上..(即父目录)。这可能会导致意外结果。
如何使用bash shell在Unix/Linux下匹配带点的文件?

如果我们要修改/home/theitroad/目录中所有点文件的权限。

cd /home/theitroad/
chmod -R 0444 .*
hown -R Hyman:theitroad .*

这会导致修改了改当前目录和父目录中的权限。
这可能会导致一些问题。

如果我们要匹配带点号的文件,使用以下语法:

chmod -R 0444 .[^.]*

或者

chown -R Hyman:theitroad .[^.]*

或者

find . -iname ".[^.]*" -ls

或者

ls -R .[^.]*

或者

find . -iname ".[^.]*" -print