Я пока не могу оставлять комментарии, поэтому спрашивайте здесь. Как вы установили проприетарные драйвера? Я делал это несколько раз в своих системах и постоянно забываю точные шаги, но я просто запускаю один -файл, загружаемый с nvidia из оболочки, и он помогает мне (обычно запускать из терминала с правами root. -без X ). Важно, чтобы он компилировал необходимые библиотеки с вашими текущими библиотеками ядра.
Кроме того, проверяли ли вы настройки /usr/bin/nvidia -? (думаю, просто для общей проверки настроек ).
А как насчет Xorg.0.log? Он должен давать больше подробностей об ошибках, чем dmesg.
Предполагая, что эти имена файлов закодированы в UTF -8, используйте:
find. -depth -execdir rename -n '
utf8::decode$_ or die "cannot decode $_\n";
s{[^\w.\@+,#!?:&%~()\[\]/ -]}{?}gs;
utf8::encode$_;
' {} +
(удалите -n
когда счастливы ).
Имейте в виду, что некоторые реализации BSD find
не добавляют к именам файлов префикс ./
с префиксом -execdir
, так что эта команда может завершиться ошибкой, если есть имена файлов, начинающиеся с -
. С вашим вариантом rename
вы сможете обойти это, изменив rename -n
на rename -n --
(, который не будет работать со всеми другими вариантами perl rename
).
В современных версиях perl
,\w
(для слова символ )— это любой буквенно-цифровой (в любом алфавитном письме, а не только латинский ), или символ подчеркивания плюс другой символы пунктуации соединителя плюс знаки Unicode (, например, включает сочетание острого ударения , которое следует за e
в разложенной формеé
).
Если вы хотите быть более строгим, вместо \w
вы можете использовать \p{latin}\p{mark}0-9_
, чтобы включать только буквы латинского алфавита (, а не кириллицу, греческий... ), комбинированные диакритические знаки (, но не ограничиваясь теми, которые обычно используются с латинскими буквами ), и только индийско-арабскими десятичными цифрами (, а не другими видами цифр )и символом подчеркивания (, а не другими знаками пунктуации соединителя ).
Если вы не используете utf8::decode
, perl
будет предполагать, что символы закодированы в iso8859 -1 набор однобайтовых символов (, например, где0xc3 0xa9
(кодировка UTF -8 предварительно -составленная формаé
)естьÃ
©
).
В качестве альтернативы вы можете использовать zsh
(, который будет декодировать символы в соответствии с кодировкой локали. (см. выводlocale charmap
)):
autoload zmv # best in ~/.zshrc
zmv -n '(**/)(*)(#qD)' '$1${2//[^][:alnum:]_.@+,#!?:&%~()[\/ -]/?}'
Каждый байт из любой последовательности байтов, которые не образуют допустимые символы в вашей локали, также будет преобразован в ?
(, где rename
выше умрет с ошибкой cannot decode
).
Его [[:alnum:]]
использует категорию alnum
вашей локали, поэтому маловероятно, что он будет включать другие знаки пунктуации или знаки соединителя Unicode.
Как в perl
, так и в zsh
(, но часто не в других инструментах ), диапазоны, такие как [a-zÀ-ÿ]
, основаны на кодовой точке символов. Например, azÀÿ
— это \u0061\u007A\u00C0\u00FF
, поэтому этот диапазон будет соответствовать символам abcdefghijklmnopqrstuvwxyzÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
в том диапазоне кодовых точек (, который включает не -буквенные символы и не все символы латинского алфавита или используемые во французском языке. язык типаœ
). В perl
вам также нужно добавить use utf8
, чтобы иметь возможность использовать кодировку UTF -8 À
и ÿ
в коде Perl.