如何查看所有(包括隐藏的)子目录

时间:2013-02-17 22:13:21

标签: bash shell unix ls

当我输入ls -al时,在服务器上,我得到一个目录列表

-bash-3.2$ ls -al
total 12
drwxr-xr-x  3 root root    0 Feb 13  2011 .
drwxr-xr-x  4 root root 4096 May 11  2011 ..
drwxr-xr-x 55 torg torg 4096 May 15 05:40 stuff

但是我碰巧知道有更多目录存在,因为当我输入cd loourr然后返回cd ..我发现自己

-bash-3.2$ ls -al
total 32
drwxr-xr-x  3 root root    0 Feb 13  2011 .
drwxr-xr-x  4 root root 4096 May 11  2011 ..
drwxr-xr-x 55 torg torg 4096 May 15 05:40 torg
drwxr-xr-x 108 loourr loourr 20480 Jan 29 19:48 loourr

这是为什么?我的印象是-a标志显示所有目录。可能导致这种情况的原因,以及如何显示仍未列出的目录?

更新: 下面是当我遵循David Wolever建议时会发生什么

-bash-3.2$ ls
torg
-bash-3.2$ pwd
/home/room1
-bash-3.2$ cd loourr
-bash-3.2$ pwd
/home/room1/loourr
-bash-3.2$ cd ..
-bash-3.2$ ls
torg  loourr
-bash-3.2$ pwd
/home/room1

当我挂载

-bash-3.2$ mount
/dev/sda2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda6 on /scratch type ext3 (rw)
/dev/sda3 on /var type ext3 (rw)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
cartman.foo.bar:/home/room2/me on /home/room2/me type nfs (rw,addr=*.43)
cartman.foo.bar:/home/room2/admin on /home/room2/admin type nfs (rw,addr=*.43)
storage1.foo.bar:/storage/3 on /storage/3 type nfs (rw,nfsvers=3,tcp,intr,hard,addr=*.44)
cartman.foo.bar:/home/room1/torg on /home/room1/torg type nfs (rw,addr=*.43)
cartman.foo.bar:/home/room1/loourr on /home/room1/loourr type nfs (rw,addr=*.43)

一些注意事项:我将服务器管理员名称替换为admin,我的帐户名称替换为me,服务器扩展名替换为foo.bar,部分addr =替换为{{{ 1}}

2 个答案:

答案 0 :(得分:1)

ls -al没有理由不显示loourr目录。

必须在ls的第一次和第二次调用之间创建,或者您可能已经在另一个目录中创建。试试这个:

$ ls
stuff/
$ pwd
/foo/
$ cd loourr
$ pwd
/bar/loourr/
$ cd ..
$ ls
stuff/ loourr/
$ pwd
/bar/ <-- different directory

有几个不同的原因cd可能会将您带到另一个目录...符号链接是一个(尽管可能不在您的情况下),而CDPATH环境变量是另一个(如果你echo $CDPATH,你看到了吗?)

答案 1 :(得分:1)

我怀疑你已经设置了自动挂载程序。这不是目录不可见的情况,而是当您第一次尝试引用该位置时,根据需要创建目录并在该位置安装远程文件系统。

在这种情况下,使用ls -a或任何其他选项将不会显示目录,因为它们尚不存在。您的系统管理员可以在自动挂载程序上设置选项以使目录可见(可浏览),但除了通常不是默认值之外,还有充分的理由说他们可能没有这样做。