无法读取/编辑现有文件

无法读取/编辑现有文件

我在 mk802 迷你电脑上使用的 SD 卡上安装了 Ubuntu(Lubuntu 12.04)。当我在电脑(Ubuntu 12.04)上安装 SD 卡时,无法读取/编辑与 ssh 相关的文件(例如 etc/ssh_config 或 etc/sshd_config),但我可以在 ls 输出中看到它:

root@boss:/media/d5578c69-a3c3-43be-a24f-9e1daaf6eb62/etc# ls -lrta ssh*
total 168
-rw-r--r--   1 root root    302 Jan 10  2011 ssh_import_id
-rw-r--r--   1 root root   1669 Apr  2  2012 ssh_config
-rw-r--r--   1 root root 125749 Apr  2  2012 moduli
-rw-r--r--   1 root root    395 Jun 12  2012 ssh_host_rsa_key.pub
-rw-------   1 root root   1679 Jun 12  2012 ssh_host_rsa_key
-rw-r--r--   1 root root    175 Jun 12  2012 ssh_host_ecdsa_key.pub
-rw-------   1 root root    227 Jun 12  2012 ssh_host_ecdsa_key
-rw-r--r--   1 root root    603 Jun 12  2012 ssh_host_dsa_key.pub
-rw-------   1 root root    672 Jun 12  2012 ssh_host_dsa_key
-rw-r--r--   1 root root   2498 Dec  8 01:17 sshd_config
drwxr-xr-x   2 root root   4096 Dec  8 01:17 .
drwxr-xr-x 120 root root   4096 Jan 19 08:32 ..


root@boss:/media/d5578c69-a3c3-43be-a24f-9e1daaf6eb62/etc# cat sshd_config
cat: sshd_config: No such file or directory

同一文件夹中的其他文件没有出现此问题。这种情况的原因是什么?

答案1

我明白问题所在。您ls -lrta ssh*在目录中使用/etc/。这会匹配该ssh文件夹中的目录,然后列出该目录的内容。您看到的那些文件实际上位于 中/etc/ssh/

不会ls -lrtad ssh*进入目录。

从目录访问您的文件/etc/ssh/


这里的棘手之处在于,当您在命令行上尝试使用ls时,通常会在那些文件来自哪个目录的情况下放置一个标题。问题是shell 会扩展以制作命令行。例如,当您写入并且目录也有一个和条目时,shell 实际上会运行此命令:输出将类似于:ls**ls py*pythonpython3ls python python3

python:
debian_config

python3:
debian_config

因为ls看到多个参数,所以它会为每个目录打印一个标题。因此,您可以轻松看到这些文件来自不同的目录。但是,当目录中只有一个匹配项时(例如您的情况),ls ssh*会扩展为ls ssh,然后ls会看到您只输入了一个参数,因此不需要标题,因为您知道自己在做什么,并且输出将与您的类似。

相关内容