分页: 1 / 1

[已解决,感谢7楼]bash的*匹配时会忽略掉某些文件名?

发表于 : 2016-12-06 16:32
科学之子
bash的*匹配时会忽略掉某些文件名?
bash通配符无法使用?搜到的"set -o noglob" 和"set +o noglob"无效

奇怪的是在特定目录下才出现通配符无效的情况
那个目录是我用adduser username 刚添加的 home目录

代码: 全选

echo *
好像确实没有被扩展
但是cd到其它目录就有正常的内容了
shell环境是 sudo su 进入的root

仔细观察发现是该用户home目录下的一些文件没有被匹配到?

代码: 全选

root@debian:/home/test# ls
testd
root@debian:/home/test# ls
testd
root@debian:/home/test# ls -a
.  ..  .bash_history  .lesshst	testd  .Xauthority
root@debian:/home/test# echo *
testd
我是在试图rm情况某用户home目录时发现的这个现象
testd是手动创建的测试目录

Re: bash通配符无法使用?搜到的"set -o noglob" 和"set +o noglob"无效

发表于 : 2016-12-06 16:38
科学之子
奇怪的是在特定目录下才出现通配符无效的情况
那个目录是我用adduser username 刚添加的 home目录

Re: bash通配符无法使用?搜到的"set -o noglob" 和"set +o noglob"无效

发表于 : 2016-12-06 16:40
科学之子

代码: 全选

echo *
好像确实没有被扩展
但是cd到其它目录就有正常的内容了

Re: bash通配符无法使用?搜到的"set -o noglob" 和"set +o noglob"无效

发表于 : 2016-12-06 16:40
科学之子
shell环境是 sudo su 进入的root

Re: bash通配符无法使用?搜到的"set -o noglob" 和"set +o noglob"无效

发表于 : 2016-12-06 16:41
cao627
bash通配符无法使用?搜到的
这句话什么意思?

Re: bash通配符无法使用?搜到的"set -o noglob" 和"set +o noglob"无效

发表于 : 2016-12-06 16:52
vickycq
cao627 写了:
bash通配符无法使用?搜到的
这句话什么意思?
断句错误。
科学之子 写了:奇怪的是在特定目录下才出现通配符无效的情况
建议将执行的指令及其输出全部复制贴上来,否则难免有遗漏

Re: bash的*匹配时会忽略掉某些文件名?

发表于 : 2016-12-06 16:57
vickycq
科学之子 写了:仔细观察发现是该用户home目录下的一些文件没有被匹配到?
root@debian:/home/test# ls -a
. .. .bash_history .lesshst testd .Xauthority
root@debian:/home/test# echo *
testd
使用 dotglob 选项令 * 匹配所有文件,包括隐藏文件

代码: 全选

$ ls -a
.  ..  .afsas  ddd
$ echo *
ddd
$ echo .*
. .. .afsas

$ shopt -s dotglob
$ echo *
.afsas ddd
$ shopt -u dotglob
$ echo *
ddd
参考 http://unix.stackexchange.com/questions ... -directory