如何在bash中不使用tilde和tab完成来解析所有用户
要进入我的主文件夹的某个子文件夹,我键入如何在bash中不使用tilde和tab完成来解析所有用户,bash,autocomplete,Bash,Autocomplete,要进入我的主文件夹的某个子文件夹,我键入cd~/sub[tab]。此操作已完成到cd~/子文件夹。一切都很好 如果我不小心忘记了斜杠,并键入cd~sub[tab]正在解析所有用户,则会搜索匹配项。这需要一些时间,因为我们公司有一个中央用户服务器和大量用户 我是否可以关闭所有用户的解析功能,但仍可以使用tilde~ 我使用bash版本4.3.0 我不需要通过cd~someUser进入某些用户的家中,打开文件/usr/share/bash completion/bash_completion,然后找
cd~/sub[tab]
。此操作已完成到cd~/子文件夹
。一切都很好
如果我不小心忘记了斜杠,并键入cd~sub[tab]
正在解析所有用户,则会搜索匹配项。这需要一些时间,因为我们公司有一个中央用户服务器和大量用户
我是否可以关闭所有用户的解析功能,但仍可以使用tilde~
我使用bash版本4.3.0
我不需要通过
cd~someUser
进入某些用户的家中,打开文件/usr/share/bash completion/bash_completion
,然后找到函数tilde()
(第941行附近)。在这里,只需注释掉行号946
。最后,函数应如下所示:
# Perform tilde (~) completion
# @return True (0) if completion needs further processing,
# False (> 0) if tilde is followed by a valid username, completions
# are put in COMPREPLY and no further processing is necessary.
_tilde()
{
local result=0
if [[ $1 == \~* && $1 != */* ]]; then
# Try generate ~username completions
#COMPREPLY=( $( compgen -P '~' -u "${1#\~}" ) )
result=${#COMPREPLY[@]}
# 2>/dev/null for direct invocation, e.g. in the _tilde unit test
[[ $result -gt 0 ]] && compopt -o filenames 2>/dev/null
fi
return $result
}
试试看。波浪形扩展是一种shell功能。我不知道你是否可以部分禁用它,但我想这将取决于你的shell@gogaz我编辑了我的问题以指定我正在使用的bash版本。