ls показывает файл, но при попытке прочитать он говорит, что его не существует

818
Bart Friederichs

У меня есть монтирование 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. Основная проблема - плохая производительность (медленно!), Но это просто странно.

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

3
Вы пробовали: `more * WeirdFile *`? chingNotCHing 6 лет назад 0

1 ответ на вопрос

2
xenoid

Возможная причина, по которой этот 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е(где финал ена самом деле является символом кириллицы:

enter image description here

Я набрал имя файла с помощью табуляции. И попробовал `hexdump`, ничего странного там нет. Bart Friederichs 6 лет назад 0

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