DebuggerX
deepin
2021-02-26 01:40 因为这个补全并不是简单的文件路径补全。
deepin默认安装了 bash-completion 来实现更好、更智能的补全,所以当输入某些命令后载按tab键进行补全,内置规则会尽量提示出“允许”的操作。
以你的例子为例,当你已经输入了 umount,那么就会应用这个规则:
https://github.com/scop/bash-completion/blob/master/completions/_umount
注意里面
COMPREPLY=($(compgen -W '$(mount | cut -d" " -f 3)' -- "$cur"))
这一句,是将 mount | cut -d" " -f 3 的结果传递给补全操作,意思是只能 umount “已经mount了”的路径,而不是简单的“存在的路径”,所以会得到和 ls 命令不同的表现
Reply Like 0 View the author


中文 
执行umount /dev/sda1时发现/dev/sda1补全不了, 但是执行ls命令时却能补全到, 有点诡异