列出目录的 ls 信息和挂载点?

列出目录的 ls 信息和挂载点?

在我的 Ubuntu Natty 上,通常插入的所有新驱动器(例如 USB 闪存拇指驱动器)都安装在/media.因此,在我的系统上,我可以执行以下操作:

$ mount | grep '/media'
/dev/sda6 on /media/disk1 type ext4 (rw,uhelper=hal,commit=0)
/dev/sda9 on /media/disk2 type ext4 (rw,nosuid,nodev,uhelper=udisks,commit=0)

# create proper dir
$ sudo mkdir /media/properdir
# creat symlink
$ sudo ln -s /tmp /media/

$ ls -la /media/
total 24
drwxr-xr-x  6 root          root          4096 2013-04-08 16:35 .
drwxr-xr-x 22 root          root          4096 2013-03-23 21:44 ..
drwxr-xr-x 36 username      username      4096 2013-04-06 19:15 disk2
drwxr-xr-x 11 username      username      4096 2012-04-10 12:24 disk1
drwxr-xr-x  2 root          root          4096 2013-04-08 16:35 properdir
lrwxrwxrwx  1 root          root             4 2013-04-08 16:35 tmp -> /tmp

...也就是说,ls不区分“正确的”目录和驱动器的安装点。我想要的是一个工具输出可能的安装点,类似于符号链接的显示方式ls;例子:

$ lsMOUNT -la /media/
total 24
drwxr-xr-x  6 root          root          4096 2013-04-08 16:35 .
drwxr-xr-x 22 root          root          4096 2013-03-23 21:44 ..
drwxr-xr-x 36 username      username      4096 2013-04-06 19:15 disk2 => /dev/sda9
drwxr-xr-x 11 username      username      4096 2012-04-10 12:24 disk1 => /dev/sda6
drwxr-xr-x  2 root          root          4096 2013-04-08 16:35 properdir
lrwxrwxrwx  1 root          root             4 2013-04-08 16:35 tmp -> /tmp

正确的人ls有这样的选择吗?如果没有,是否有工具可以接受与 相同的命令行参数ls,但解析潜在的安装点?

答案1

这将是一个很好的功能。你可以请 ls 的人考虑一下。 :-)

在他们这样做之前,您将必须编写自己的脚本(然后您可以别名为 ls )来检查每个输出目录是否是挂载点。对于单个目录,这可以使用命令完成mountpoint,但对于长列表,我建议优化:从 读取挂载点/proc/mounts,然后调用ls(以--quoting-style=允许您可靠地解析输出的方式设置),然后检查目录名挂载点列表中的每一行或条目。对于比赛,您只需附加您最喜欢的符号即可。

相关内容