シンボリックリンクでlsコマンドを使用する

シンボリックリンクでlsコマンドを使用する

現時点では、コマンドを使用してディレクトリシンボリックリンクの内容や情報を検索しようとしたときに何が起こっているのか理解できませんls。このコマンドには、コマンドラインにリストされているシンボリックリンクに従う-Hオプションがあることがわかります。lsマニュアルページでは、lsこれはこのオプションを使用する場合にのみ必要とは言いません-l。私がls symLinkToDir何かをするなら〜するリンクされたディレクトリの内容を一覧表示します。他のオプションは必要ありません。ただし、これを行うと、そのオプションも含めない限り、リンクls -l symLinkToDirに関する情報のみが表示されます。-H私が言う例は次のとおりです。

brian@LinuxBox:~$ ls playground/linkedDir
file4  file5
brian@LinuxBox:~$ ls -l playground/linkedDir
lrwxrwxrwx 1 brian brian 4 Feb 18 16:42 playground/linkedDir -> dir2
brian@LinuxBox:~$ ls -lH playground/linkedDir
total 0
-rw-rw-r-- 1 brian brian 0 Feb 18 16:41 file4
-rw-rw-r-- 1 brian brian 0 Feb 18 16:41 file5

ここで何か理解できませんか?これはただ働く方法が変なのでしょうか?これが実際に機能する方法である場合は、マニュアルページで特定の条件下でシンボリックリンクをたどり、オプションが必要-Hないと言うべきではありませんか?ご意見ありがとうございます。

ベストアンサー1

ディレクトリシンボリックリンクの動作は、同様lsにさまざまなオプションによって異なります。シンボリックリンクアクションオプション(、、)がないと、ディレクトリの内容が表示されますが、すべてシンボリックリンクに関する情報が表示されます。-l-H-L-Hls symlinkToDirls -l symlinkToDirls -d symlinkToDirls -F symlinkToDir

GNU実装のマニュアルページを読んでいる場合は、完全なls内容を提供しません。 GNUのマニュアルページは単なる要約です。文書全体は、info ls現在一般的にHTMLで提供されている情報マニュアル()にあります。また、情報マニュアルでディレクトリシンボリックリンクのデフォルト動作が見つかりませんでしたが、ドキュメントのバグかもしれません。

これFreeBSD マニュアルページ-Hたとえば、より正確ですがデフォルトの動作を見つけるには、オプションの説明を読む必要があります。

-Hコマンドラインでシンボリックリンクに従います。-F、またはオプションを指定しない場合は、-dこのオプションと見なされます-l

もう少し正式な説明が欲しいが、読みにくい場合は、以下をお読みください。POSIX仕様。これは実装によっては拡張されません。

-d、-F、または-lオプションの1つ以上が指定され、-Hおよび-Lオプションが指定されていない場合、名前付きディレクトリー・シンボル・リンク・タイプ・ファイルの各オペランドに対して、lsは次の名前を使用する必要があります。ファイルと要求された関連情報。 -d、-F、または-lオプションが指定されていない場合、または-Hまたは-Lオプションが指定されている場合は、ディレクトリシンボルリンクタイプファイルの名前を指定する各オペランドに対して、lsはディレクトリに含まれるファイル名を作成する必要があります。関連情報。

おすすめ記事