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

最大的社区版本,Ubuntu的发源地
回复
科学之子
帖子: 2284
注册时间: 2013-05-26 6:58
系统: Debian 9

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

#1

帖子 科学之子 » 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是手动创建的测试目录
上次由 科学之子 在 2016-12-06 17:08,总共编辑 2 次。
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

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

#5

帖子 cao627 » 2016-12-06 16:41

bash通配符无法使用?搜到的
这句话什么意思?
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

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

#6

帖子 vickycq » 2016-12-06 16:52

cao627 写了:
bash通配符无法使用?搜到的
这句话什么意思?
断句错误。
科学之子 写了:奇怪的是在特定目录下才出现通配符无效的情况
建议将执行的指令及其输出全部复制贴上来,否则难免有遗漏
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

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

#7

帖子 vickycq » 2016-12-06 16:57

科学之子 写了:仔细观察发现是该用户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
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
回复