/etc/fstabのすべてのスペースは何のためですか?

/etc/fstabのすべてのスペースは何のためですか?

私はこれを使ってディレクトリをmount設定し、再起動時にそれを再マウントする/ために使用できることを知っています。/etc/fstab

fstabファイルをテストするのも楽しいですmount -faV

fstabファイルを見ると、スペースがとてもたくさんあります。スペース1つ(コマンドパラメータ間の区切り文字など)またはスペース4つ(タブ文字など)が必要です。私はほぼ慣習に従って一度に7つのスペースを見ます。

私の質問は次のとおりです/etc/fstabのすべてのスペースは何のためですか?

(おそらく - 間違った番号を受け取ると影響がありますか?)

答え1

スペースの量は、熱/フィールドを審美的に分離する方法です。他には意味がありません。つまり列間のスペースのサイズは重要ではありません。

列間のスペースはスペース(タブを含む)で構成され、列自体(たとえば、カンマで区切られたオプション)には引用符なしのスペースを含めないでください。

fstab(5)マニュアルページから:

各行のフィールドはタブまたはスペースで区切られます。

そして

マウントポイント名にスペースが含まれている場合は、「\ 040」にエスケープできます。

はい

次の行では、1つのタブだけを使用してソートすることは困難です。結局のところ、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

スペースまたはタブはフィールドを区別します。できるだけ少ない色または多くの色を使用してください。 fstabが少し読みにくい場合は、columnそれを使用して美しくしてみてください。

fstab列-tの使用例

答え3

getmntent提案する解析エラー1行が文字数制限を超える場合。 (getmntentこれは/ etc / fstabを読むための推奨方法です。)

man getmntent公開された:

getmntent() 関数は、ストリームからファイルシステム記述ファイルの次の行を読み込み、ファイルの行に区切りフィールドを含む構造体へのポインターを返します。

ご覧のとおりgetmtent_r、ファイルディスクリプタ情報を格納するために使用される構造は配列として保存されるため、より大きい項目では解析エラーが発生しmountます。buflenbuflen

このデザインは、単一項目の複数の改行文字\ではエスケープ文字が正しく機能しないために選択されました。fstab

簡単に確認できますが、違いは次のとおりです。いいえただ化粧品...

関連情報