`ls -l~~`(две тильды )+ вкладка показывает не каталоги, начинающиеся с ~~, а пользователей

Существуют различные возможные причины сбоя в разрешении имен.

  1. У вас нет подключения к Интернету. Попробуйте

    ping -c4 8.8.8.8
    

    Если вы получили ответы, ваше интернет-соединение работает. Иначе выясните, почему это не

  2. У вас неправильный преобразователь. Тип

    cat /etc/resolv.conf
    

    Вы должны увидеть хотя бы одну строку

    nameserver a.b.c.d
    

    a.b.c.dобычно является адресом вашего маршрутизатора. Если такой строки нет, добавьте ее. Если такая строка есть, но она не работает, или если вы не знаете адрес своего роутера, попробуйте nameserver 8.8.8.8. При этом используются DNS-серверы Google по адресу 8.8.8.8.

2
15.11.2019, 22:27
2 ответа

~— это синтаксический сахар, доступный в Bash, который предназначен для расширения до $HOME. У автозавершения Bash было много особенностей, над которым до сих пор работают. Раньше он не мог -автоматически дополнять многие имена файлов специальными символами, такими как, например, новая строка или звездочка, и похоже, что вы обнаружили еще одну причуду.

Мой C -foo недостаточно силен, но похоже, что ответ, который вы ищете, должен быть где-то рядом

/* We aren't done yet.  We also support the "~user" syntax. */

в lib/readline/complete.c

1
27.01.2020, 22:16

Для bash man readlineобъясняет:

Completing
  complete (TAB)


Attempt to perform completion on the text before point.
The actual completion performed is application-specific.  

Bash, for instance, attempts completion treating the text as a 

variable (if the text begins with $), 
username (if the text begins with ~), 
hostname (if the text begins with @), or 
command (including aliases and functions) in turn.  

If none of these produces a match, filename completion is attempted.

Завершение имени пользователя также может быть запущено с помощью M-~.


...и завершение имени файла по умолчаниюM-/(Esc, /илиAlt-/)

]# touch '~~ van tilde'
]# ls ~~\ van\ tilde 

ls ~~Esc/)


Завершение и расширение не следует путать.


После touch \~ftpи ~f+TABя получаю:

\~ftp/что ни то, ни другое. Обратная косая черта показывает, что bash распознает файл, косая черта происходит от расширения как /srv/ftp/.

0
27.01.2020, 22:16

Теги

Похожие вопросы