为什么有些文件夹在命令行中不可见?

我有一个通过SSHlogin的web服务器。 最近,我不知道是什么导致了这个变化,任何名为“系统”的目录或符号链接变得不可见。

在命令行(Ubuntuterminal)上SSH服务器进入服务器之后:

$ mkdir test_directory $ cd test_directory/ $ ll total 8 drwxr-xr-x 2 root root 4096 Nov 7 18:02 ./ drwxr-xr-x 4 root root 4096 Nov 7 18:02 ../ $ ln -s /var/www/repos/radiocms/admin/ $ ln -s /var/www/repos/radiocms/application/ $ ln -s /var/www/repos/radiocms/public/ $ ln -s /var/www/repos/radiocms/system/ $ ll total 8 drwxr-xr-x 2 root root 4096 Nov 7 18:02 ./ drwxr-xr-x 4 root root 4096 Nov 7 18:02 ../ lrwxrwxrwx 1 root root 37 Nov 7 18:02 admin -> /var/www/repos/radiocms/admin// lrwxrwxrwx 1 root root 43 Nov 7 18:02 application -> /var/www/repos/radiocms/application// lrwxrwxrwx 1 root root 38 Nov 7 18:02 public -> /var/www/repos/radiocms/public// $ cd /var/www/repos/radiocms/ $ ll total 36 drwxr-sr-x 7 root apache 4096 Nov 7 16:49 ./ drwxr-sr-x 9 root apache 4096 Nov 7 16:49 ../ drwxr-sr-x 8 root apache 4096 Nov 7 16:49 .git/ -rw-r--r-- 1 root apache 9 Nov 7 16:49 .gitignore -rwxr-xr-x 1 root apache 336 Nov 7 16:49 .htaccess* drwxr-sr-x 7 root apache 4096 Nov 7 16:49 admin/ drwxr-sr-x 10 root apache 4096 Nov 7 16:49 application/ -rwxr-xr-x 1 root apache 1363 Nov 7 16:49 index.php* drwxr-sr-x 5 root apache 4096 Nov 7 16:49 public/ $ cat /etc/*-release CentOS release 6.4 (Final) CentOS release 6.4 (Final) CentOS release 6.4 (Final) $ type ll ll is aliased to `ls -alF --color=auto' $ type ls ls is aliased to `ls --color=auto' $ which ls alias ls='ls --color=auto' /bin/ls $ which ll alias ll='ls -alF --color=auto' /bin/ls $ /bin/ls -al /var/www/repos/radiocms/ total 36 drwxr-sr-x 7 root apache 4096 Nov 7 16:49 . drwxr-sr-x 9 root apache 4096 Nov 7 16:49 .. drwxr-sr-x 8 root apache 4096 Nov 7 16:49 .git -rw-r--r-- 1 root apache 9 Nov 7 16:49 .gitignore -rwxr-xr-x 1 root apache 336 Nov 7 16:49 .htaccess drwxr-sr-x 7 root apache 4096 Nov 7 16:49 admin drwxr-sr-x 10 root apache 4096 Nov 7 16:49 application -rwxr-xr-x 1 root apache 1363 Nov 7 16:49 index.php drwxr-sr-x 5 root apache 4096 Nov 7 16:49 public 

我知道名为“系统”的符号链接存在于testing目录中:我刚创build它。 我知道目录“系统”存在于“radiocms”目录中,因为当我创build符号链接时,命令行自动完成。

如果我使用Nautilus书签(使用SFTP)login,这些目录显示得很好,但是在命令行上看不到任何名为“system”(文件夹,符号链接到文件夹或文件)的东西。 究竟是什么导致了这个? 我该如何解决?

如果我然后回到test_directory,我得到这个:

 $ ll total 8 drwxr-xr-x 2 root root 4096 Nov 7 18:02 ./ drwxr-xr-x 4 root root 4096 Nov 7 18:02 ../ lrwxrwxrwx 1 root root 37 Nov 7 18:02 admin -> /var/www/repos/radiocms/admin// lrwxrwxrwx 1 root root 43 Nov 7 18:02 application -> /var/www/repos/radiocms/application// lrwxrwxrwx 1 root root 38 Nov 7 18:02 public -> /var/www/repos/radiocms/public// $ find . -maxdepth 1 -type l ./public ./application ./system ./admin 

所以find看符号链接,即使ls不。 我很困惑。

如果你说只有命令行隐藏“系统”元素,那应该和你使用的命令有关。

在这里,我看你只用ll来显示文件夹,这是大部分时间的别名。 你可以看到键入type ll调用的真实命令。 例如,我可以在我的桌面上看到:

 type ll ll is aliased to `ls -Al' 

之后,你也可以试试ls

 type ls ls is aliased to `ls --color=auto' 

要确定“shell”是不显示文件夹的,请尝试使用二进制文件的真正完整path:

 /bin/ls -al /var/www/repos/radiocms/ 

并粘贴我们这个命令的结果

阿德里安。

如果有什么意想不到的事情发生,我发现帮助我的命令更加明确:

ln -s / var / www / repos / radiocms / system / path / to / test_directory / system

另外,在你发布的输出中,你的符号链接以'//'结尾,这看起来很奇怪。 您可能想要按照上面给出的示例删除并重新创build这些内容。