sync
はメモリにあるファイルシステムのデータバッファを
ディスクにフラッシュすることをカーネルに要求する。
このフラッシュには、変更されたスーパーブロック・変更された inode・
遅延した書き込みが含まれる (他にもあるかもしれない)。
カーネルは (比較的遅い) ディスクの読み書きを避けるため、
データをメモリに保持する。
これにより性能は向上するが、コンピュータがクラッシュした場合、
結果としてデータが損失したりファイルシステムが壊れたりするかもしれない。
sync はメモリにある内容すべてがディスクに書き込まれることを保証する。
通常、システムの終了には shutdown(8) や halt(8) のような
シャットダウンコマンドを稼働させるが、これ以外の方法で
システムを終了しようとする場合には、このコマンドを呼び出すべきである
(シャットダウンコマンドはシステムの停止前に同期を行わせている)。
このコマンドは単なる要求でしかないことに注意すること。
sync(1) はカーネルシステムコール sync(2) を呼び出し、
カーネルがフラッシュの予定を立てる。
したがって、sync コマンドはバッファが実際にフラッシュされる前に
返ってくるかもしれない。