LPIC問題:25-28

問題25:「ls -li」コマンドを実行して得られる結果から、ファイルタイプの組み合わせで正しいものを選択する問題

 次の「ls -li」コマンドの出力結果に基づいて、ファイルタイプの組み合わせで正しいものはどれですか?

$ ls -li
total 4
1094567 -rw-r--r-- 1 user group 123 May 18 10:00 file1
1094568 drwxr-xr-x 2 user group 4096 May 18 10:00 dir1
1094569 lrwxrwxrwx 1 user group 12 May 18 10:00 link1 -> /home/user/file2

A) file1 はシンボリックリンク、dir1 は通常のファイル、link1 はディレクトリ
B) file1 は通常のファイル、dir1 はディレクトリ、link1 はシンボリックリンク
C) file1 はディレクトリ、dir1 はシンボリックリンク、link1 は通常のファイル
D) file1 は通常のファイル、dir1 はシンボリックリンク、link1 はディレクトリ

解答解説を開く
正解) B

【解説】
A) file1 は -rw-r–r– という属性を持つ通常のファイルであり、シンボリックリンクではありません。dir1 は drwxr-xr-x という属性を持つディレクトリであり、通常のファイルではありません。link1 は lrwxrwxrwx という属性を持つシンボリックリンクであり、ディレクトリではありません。したがって、すべてのファイルタイプが間違っています。

B) file1 は通常のファイルです。dir1 はディレクトリです。link1 はシンボリックリンクです。すべてのファイルタイプが正しいため、正解です。

C) file1 は通常のファイルであり、ディレクトリではありません。dir1 はディレクトリであり、シンボリックリンクではありません。link1 はシンボリックリンクであり、通常のファイルではありません。したがって、すべてのファイルタイプが間違っています。

D) file1 は通常のファイルです。dir1 はディレクトリです。link1 はシンボリックリンクです。すべてのファイルタイプが間違っています。

問題26:/home/user/file1 に対して file2 というシンボリックリンクを作成するコマンドはどれですか?

A) ln /home/user/file1 file2
B) ln -s /home/user/file1 file2
C) ln -h /home/user/file1 file2
D) ln -L /home/user/file1 file2

解答解説を開く
正解) B

【解説】
A) ln /home/user/file1 file2 はハードリンクを作成するコマンドです。シンボリックリンクを作成するには使用しません。

B) ln -s /home/user/file1 file2 はシンボリックリンクを作成するコマンドです。正解です。

C) ln -h は無効なオプションであり、シンボリックリンクを作成することはできません。

D) ln -L はシンボリックリンクのターゲットをたどるオプションであり、シンボリックリンクを作成するためのものではありません。

問題27:ハードリンクに関する問題

ハードリンクに関する正しい説明はどれですか?

A) ハードリンクは元のファイルが移動されてもリンクが有効です。
B) ハードリンクは異なるディスク間で作成できます。
C) ハードリンクは元のファイルのデータを共有します。
D) ハードリンクはファイルのパーミッションを変更します

解答解説を開く
正解) C

【解説】
A) ハードリンクは元のファイルが移動されてもリンクは有効ですが、同じファイルシステム内での移動に限られます。

B) ハードリンクは同じファイルシステム内でしか作成できません。異なるディスク間では作成できません。

C) ハードリンクは元のファイルのデータブロックを共有します。これにより、どちらのリンクからも同じデータにアクセスできます。正解です。

D) ハードリンクはファイルのパーミッションを変更するものではなく、ファイルのデータを共有します。

問題28:ファイル名が *.log の全てのファイルを現在のディレクトリとそのサブディレクトリから検索するコマンドはどれですか?

A) find / -name "*.log"
B) find . -name "*.log"
C) grep ".log" *
D) ls -R "*.log"

解答解説を開く
正解) B

【解説】
A) find / -name “*.log” はルートディレクトリから全てのファイルシステムを検索します。これも正しい構文ですが、現在のディレクトリを基準にしているわけではありません。

B) find . -name “*.log” は現在のディレクトリ(.)とそのサブディレクトリから *.log に一致するファイルを検索します。正解です。

C) grep “.log” * は指定されたパターンを持つファイルの内容を検索するコマンドであり、ファイル名を検索するコマンドではありません。

D) ls -R “*.log” は現在のディレクトリとそのサブディレクトリを再帰的にリストしますが、*.log パターンに一致するファイルのみを表示する機能はありません。