Сетевые приложения, такие как rsync и scp могут закончить табуляцию, когда они включен с bash. Но что, если вы хотите выполнить локальное завершение табуляции без удаленного завершения табуляции? Является ли это возможным?
Предполагая, что это система в стиле Red Hat / CentOS, вы можете удалить завершение bash для определенного приложения, перейдя в /etc/bash_completion.d/
и удалив запись (символическую ссылку), соответствующую команде ...
[root@xt /etc/bash_completion.d]# ls -l
total 132
lrwxrwxrwx 1 root root 38 Oct 4 2011 _subversion -> /usr/share/bash-completion/_subversion
lrwxrwxrwx 1 root root 31 Oct 4 2011 _yum -> /usr/share/bash-completion/_yum
.
.
.
lrwxrwxrwx 1 root root 32 Oct 4 2011 rsync -> /usr/share/bash-completion/rsync
lrwxrwxrwx 1 root root 32 Oct 4 2011 samba -> /usr/share/bash-completion/samba
lrwxrwxrwx 1 root root 33 Oct 4 2011 screen -> /usr/share/bash-completion/screen
lrwxrwxrwx 1 root root 34 Oct 4 2011 sqlite3 -> /usr/share/bash-completion/sqlite3
lrwxrwxrwx 1 root root 30 Oct 4 2011 ssh -> /usr/share/bash-completion/ssh
lrwxrwxrwx 1 root root 33 Oct 4 2011 strace -> /usr/share/bash-completion/strace
Кроме того, кажется, что complete -r commandname
тоже может работать.
Редактировать:
Вы также можете редактировать записи завершения bash для конкретной службы. Например, в scp
, вы можете закомментировать ссылки на _scp_remote_files
функция для завершения локальной папки без расширения удаленных файловых систем ...