У файла действительно есть ? в имени файла, или это непечатаемый символ, который ls показывает как ??
$ touch $'a\ab' 'a?b'
$ ls
a?b a?b
В одном файле есть ASCII Символ BELL в имени, а другой имеет простой старый знак вопроса.
Новые версии ls по умолчанию могут показывать специальные символы в более ясной форме:
$ touch $'b\aa'
$ ls
'b'$'\a''a'
[d3 ] ls -q показывает, как устаревшие версии ls отображают непечатаемые символы по умолчанию. Итак, если вы просто выполняете ls в любой текущей версии Ubuntu, вы, вероятно, увидите только вопросительные знаки. Попробуйте вместо этого один из:
$ ls -b
a?b a\ab
$ printf "%q\n" *
a\?b
$'a\ab'
Если у результата из любого из них нет вопросительных знаков, то имя файла не имеет вопросительных знаков.
Вы можете использовать вывод printf для удаления:
rm a\?b
rm $'a\ab'
Или полагайтесь на завершение табуляции:
$ rm a<tab>
a?b a^Gb
Если он показывает ^G, затем нажмите CtrlV, затем CtrlG, чтобы ввести его. Или скажите bash для циклического завершения вкладок табуляции:
$ bind tab:menu-complete
$ rm a<tab>
$ rm a\?b<tab>
$ rm a^Gb
В любом случае использование rm a?b может работать, но опасно. Он будет соответствовать всем именам файлов, начиная с a, заканчивая на b и имеющим один символ между:
$ touch acb; printf "%q\n" a?b
a\?b
$'a\ab'
acb
Итак, если вы rm a?b (или, что еще хуже, rm a*b), вы можете в конечном итоге удалить файлы, которые вы не намеревались.
Что помогло мне, в конце концов, было размещение PCI-адаптера в другом слоте. Возможно, это окончательно разрешило выгрузку карты или могло иметь какой-то другой эффект ОС. Но поместив его из слота PCI 1-6, я решил это для меня.
Итак: обновление BIOS? Переместите адаптер Wifi немного.
Что помогло мне, в конце концов, было размещение PCI-адаптера в другом слоте. Возможно, это окончательно разрешило выгрузку карты или могло иметь какой-то другой эффект ОС. Но поместив его из слота PCI 1-6, я решил это для меня.
Итак: обновление BIOS? Переместите адаптер Wifi немного.