我知道我可以使用它mount
来设置/
目录,并且可以使用它/etc/fstab
在重新启动时重新安装它们。
测试 fstab 文件也很有趣mount -faV
。
当我查看 fstab 文件时,空间数量令人不安。我期望一个空格(如命令参数之间的分隔符)或四个空格(如制表符)。我一次看到七个空间,几乎按照惯例。
我的问题是:/etc/fstab 中的所有空格是做什么用的?
(也许还有——如果我得到错误的号码会有什么影响吗?)
答案1
空格的数量是一种美观地分隔列/字段的方法。除此之外没有任何意义。 IE否 列之间的空白量并不重要。
列之间的空间由空格(包括制表符)组成,并且列本身(例如逗号分隔的选项)不得包含未加引号的空格。
从fstab(5)
手册页:
每行上的字段由制表符或空格分隔。
和
如果安装点的名称包含空格,则可以将其转义为“\040”。
例子
对于以下几行,仅使用单个选项卡很难实现对齐。最后,fstab
没有空白的部分看起来比你现在认为的更混乱。
/dev/md3 /data/vm btrfs defaults 0 0
/var/spool/cron/crontabs /etc/crontabs bind defaults,bind
//bkpsrv/backup /mnt/backup-server cifs iocharset=utf8,rw,credentials=/etc/credentials.txt,file_mode=0660,dir_mode=0770,_netdev
你还能看到“柱子”吗?
答案2
答案3
getmntent
提出一个解析错误如果一行超出字符限制。 (getmntent
这是阅读 /etc/fstab 的推荐方法)。
man getmntent
揭示了:
getmntent() 函数从流中读取文件系统描述文件的下一行,并返回一个指向包含文件中一行中的断开字段的结构的指针。
从中可以看出getmtent_r
,用于存储文件描述符信息的结构mount
存储为数组buflen
- 因此对于大于 的条目会发生解析错误buflen
。
因此选择这种设计是因为\
转义字符不适用于fstab
单个条目中的多个换行符。
你可以很容易地验证这一点,区别在于不是只是化妆品...