/sbin/mkfs.fs はシンボリックリンクファイルであるにもかかわらず、バイナリファイルのように動作します。

/sbin/mkfs.fs はシンボリックリンクファイルであるにもかかわらず、バイナリファイルのように動作します。

コマンドの出力を考慮してくださいls

$ ls -l /sbin/mkfs.ext4
lrwxrwxrwx 1 root root 6 Aug  4 00:10 /sbin/mkfs.ext4 -> mke2fs

$ type mkfs.ext4
mkfs.ext4 is hashed (/sbin/mkfs.ext4)

mkfs.ext4mke2fsコマンドへのシンボリックリンクです。奇妙なこともなく、すべて大丈夫です。したがって、走るのはmkfs.ext4走るのと同じですmke2fs。次のコマンドの出力に中括弧を追加しました。

$ mke2fs
Usage: {mke2fs} [-c|-l filename] [-b block-size] [-C cluster-size]
                             --sinp--
$ mkfs.ext4
Usage: {mkfs.ext4} [-c|-l filename] [-b block-size] [-C cluster-size]
                             --sinp--

明らかにmke2fs、ファイル名を使用してオプションのリストを生成し、カスタマイズする適切なファイルシステムの種類を決定します。

$ ln -s /sbin/mke2fs mkmk

$ ls -l mkmk 
lrwxrwxrwx 1 direprobs direprobs 12 Aug  8 14:25 mkmk -> /sbin/mke2fs

$ ./mkmk
Usage: mkmk [-c|-l filename] [-b block-size] [-C cluster-size]
                           --sinp--

mkmk私はを使用して作成されたシンボリックリンクを使用してext2ファイルシステムを作成しましたln。それはどういうmkmk意味mke2fsですか?

mke2fs生成するファイルシステムの種類を決定するために実行するファイル名をどのように使用できますか?

ベストアンサー1

parse_fs_typeの機能を参照してくださいmke2fs.c:

  • ファイルシステムタイプが明示的に指定されている場合(を使用して-t)、そのタイプが使用されます。
  • ツールがHurdで実行されている場合は、「ext2」を使用してください。
  • プログラム名がある場合はmke3fs「ext3」を使用してください。
  • プログラム名がある場合はmke4fs「ext4」を使用してください。
  • プログラム名mkfs.;で始まる場合は、サフィックスを使用します。
  • /etc/mke2fs.confそれ以外の場合(存在する場合)で定義されているデフォルト値を使用します。
  • それ以外の場合は「ext2」が使用されます。ただし、デフォルトでロギングが有効になっていない場合は、「ext3」が使用されます。

結果のテキスト文字列は、ファイルシステム定義を照会するために使用されます/etc/mke2fs.conf(内部で処理される「ext2」を除く)。

したがって、mkmk最終的にext2ファイルシステムタイプを使用します。

おすすめ記事