为什么“ls”不显示“find”发现的文件?

Bic*_*ick 9 ls find

在 Ubuntu 中,当我进入“/”文件夹时,我输入:

sudo find . -name  .erlang.cookie
Run Code Online (Sandbox Code Playgroud)

结果是:

./var/lib/rabbitmq/.erlang.cookie
Run Code Online (Sandbox Code Playgroud)

然后,当我在文件夹上/var/lib/rabbitmq输入 时ls,我会看到一个名为 mnesia.txt 的文件。

当我find再次输入命令时,我看到

./.erlang.cookie
Run Code Online (Sandbox Code Playgroud)

- 这意味着什么?

gre*_*eke 22

在 Unix 中,以点开头的文件名,例如.erlang.cookie,被认为是隐藏文件,不显示为 裸ls。键入ls -a还显示隐藏文件。

来自man ls

   -a, --all
          do not ignore entries starting with .
Run Code Online (Sandbox Code Playgroud)

但是,ls如果指定名称,则可以显示隐藏文件:

$ ls .erlang.cookie
.erlang.cookie
Run Code Online (Sandbox Code Playgroud)

  • 或者,如果您不想显示 `.` 和 `..`,则使用 `ls -A`。显示它们通常只有在您使用 `ls -l` 时才有用。 (2认同)

小智 6

在 Unix 中,隐藏文件以 dot(.) 开头,因此当您发出“ls”命令时,它不会将它们列出来。如果要打印长列表格式的隐藏文件,可以使用以下命令,

$ls -la

where,
l - use a long listing format
a- do not ignore entries starting with .
Run Code Online (Sandbox Code Playgroud)