3

У меня есть монтирование CIFS на моем ПК, и команда ls показывает, что там есть определенный файл:

[bf@localhost dirX]$ ls -la
total 4096
drwxr-xr-x. 2 bf bf      0 20 okt 09:12 .
drwxr-xr-x. 2 bf bf      0  5 sep 11:05 ..
-rwxr-xr-x. 1 bf bf    880 19 okt 17:44 WeirdFile
-rwxr-xr-x. 1 bf bf    880 19 okt 17:44 GoodFile

Тем не менее, при попытке прочитать из него (или сохранить в нем), он говорит, что файл не существует:

[bf@localhost dirX]$ cat WeirdFile
cat: WeirdFile: No such file or directory

Попытка cat GoodFile работает.

У меня возникли проблемы с CIFS, так как я перешел на Fedora 26 и вынужден перейти на версию 2.1 в fstab. Основная проблема - плохая производительность (медленно!), Но это просто странно.

Обновите при перемонтировании общего ресурса, файл пропал.

1 ответ1

2

Возможная причина, по которой этот Weirdfile на самом деле не использует символы ASCII в имени. В этом случае, если вы набираете имя файла, оно не работает, но если вы используете копирование / вставку, оно работает (оно также может работать с завершением команды, в зависимости от того, где находится символ, отличный от Ascii).

Для символов не-ASCII есть две возможности:* символ не-ASCII имеет глиф, идентичный глифу латинского алфавита (типично кириллица «a», «o», «e») * символ не-ASCII невидим (например, +U200B, без пробела нулевой ширины).

Помимо разницы между копированием / вставкой и перепечаткой:

  • если вы делаете ls suspisciousfile | wc -c , с all-ASCII вывод wc будет всего на один байт больше, чем вы можете считать в имени файла (из-за последнего перевода строки), если есть символы не ASCII, он будет длиннее.
  • с hexdump: ls suspisciousfile | hexdump -C сделает любые не-ASCII символы очень очевидными.

Пример со специально созданным filе (где конечный символ е на самом деле является символом кириллицы:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .