Почему этот файл с точками и обратной косой чертой отображается только с ls -lah, а не с ls?

Я удаляю файл, который был идентифицирован как зараженный. В этом файле есть точки и обратные слеши в стиле Windows. (Каталоги Linux разделены косой чертой, как этот "/", тогда как этот файл содержит косые черты, как этот "\")

Фактическое имя файла (обратите внимание, что это не путь, вся эта строка является именем):

..\lib\plugin\amd.dll

Этот вставленный текст показывает, что я просматриваю этот файл с помощью команды ls -lah (см. Строку 4)

-rw-rw----  1 mysql mysql 9.3K Aug 11  2014 host.frm
-rw-rw----  1 mysql mysql    0 Aug 11  2014 host.MYD
-rw-rw----  1 mysql mysql 2.0K Aug 11  2014 host.MYI
-rw-rw-rw-  1 mysql mysql  40K Nov  9  2014 ..\lib\plugin\amd.dll
-rw-rw----  1 mysql mysql 8.4K Feb  7  2015 lokfdh.frm
-rw-rw----  1 mysql mysql 8.6K Aug 11  2014 ndb_binlog_index.frm
-rw-rw----  1 mysql mysql    0 Aug 11  2014 ndb_binlog_index.MYD
-rw-rw----  1 mysql mysql 1.0K Aug 11  2014 ndb_binlog_index.MYI

ОДНАКО, если я просто использую только "ls", файл не отображается. Смотрите вставленный ниже текст без файла. С "ls -lah" (показанным выше) файл появляется сразу после "host.MYI", но только с "ls" (показанным ниже), файл не появляется вообще.

host.frm
host.MYD
host.MYI
lokfdh.frm
ndb_binlog_index.frm
ndb_binlog_index.MYD
ndb_binlog_index.MYI

Мой вопрос: зачем мне нужно использовать "ls -lah", чтобы увидеть это? Почему "лс" не показывает это?

Спасибо.

1 ответ

Решение

Это конкретно -a что имеет значение.

Из лс (1):

   -a, --all
          do not ignore entries starting with .

Т.е. обычно имена файлов начинаются с точки (.) считаются скрытыми (часто используются, например, для файлов конфигурации в домашнем каталоге пользователя).

Другие вопросы по тегам