为什么这个带有点和反斜杠的文件只能通过 ls -lah 显示,而不能通过 ls 显示?

为什么这个带有点和反斜杠的文件只能通过 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”才能看到它?为什么单独使用“ls”无法显示它?

谢谢。

答案1

这恰恰是-a造成差异的原因。

来自 ls(1):

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

即,通常以点(.)开头的文件名被视为“隐藏”的(通常用于用户主目录中的配置文件)。

相关内容