Возможная причина, по которой этот Weirdfile на самом деле не использует символы ASCII в имени. В этом случае, если вы набираете имя файла, оно не работает, но если вы используете копирование / вставку, оно работает (оно также может работать с завершением команды, в зависимости от того, где находится символ, отличный от Ascii).
Для символов не-ASCII есть две возможности: * символ не-ASCII имеет глиф, идентичный глифу латинского алфавита (типично кириллица «a», «o», «e») * символ не-ASCII невидим (например, + U200B, без пробела нулевой ширины).
Помимо разницы между копированием / вставкой и перепечаткой:
- Если вы это сделаете
ls suspisciousfile | wc -c
, при использовании all-ASCIIwc
выходной файл будет на один байт больше, чем вы можете посчитать в имени файла (из-за последнего перевода строки), если есть символы не ASCII, он будет длиннее. - с
hexdump
:ls suspisciousfile | hexdump -C
сделает любые не-ASCII символы очень очевидными.
Пример со специально созданным filе
(где финал е
на самом деле является символом кириллицы: