'-F'オプションを使用する'ls'シンボリックリンク名へのスラッシュ(/)サフィックスの影響

'-F'オプションを使用する'ls'シンボリックリンク名へのスラッシュ(/)サフィックスの影響

たとえば、次のようなディレクトリ構造があります。

$ \ls -F
dir/  lnk@

$ \ls -F dir
FILE

$ \ls -l lnk
lrwxrwxrwx 1 user group d Mon hh:mm lnk -> dir

私のlsコマンドにはエイリアスがあります。私は\ls標準的な動作を得るために使用します。

問題は

-Fwithオプションを使用するときにlsシンボリックリンク名の後にスラッシュを追加すると、動作に影響するのはなぜですかls

$ \ls -F lnk
lnk@

\ls -F lnk/
FILE

そうでない場合、/シンボリックリンク自体は@インジケータ/フラグ/分類子とともにリストされ、/シンボリックリンクが参照するディレクトリ内のファイルはインジケータとともにリストされます(FILE一般ファイル)。

オプションのない動作を一貫しているのか、一貫していないのかはわかりません。

$ \ls lnk
FILE

\ls lnk/
FILE

でこれの説明が見つかりませんでしたman ls

同様の投稿

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

シンボリックリンクの内容を表示

引用する

ディレクトリシンボリックリンクの末尾のスラッシュ

IEEEとオープングループ(2004)「パス名の解決」セクション4.11存在するOpen Group 基本仕様 6号

IEEEとオープングループ(2018a)「パス名の確認」セクション4.13存在するOpen Group基本仕様7号

IEEEとオープングループ(2018b)」エルエス

答え1

つまり、 とはlnk異なるlnk/ファイルを参照するからです。

長い答え

IEEEとThe Open Group(2018a)を確認した後、私の質問はパス名の解決を誤解しているようです。特に:1)したがって、他のファイル名を指定するのとlnk/同じです。lnk/.lnklnk/

パス名解決中にシンボリックリンクが見つかると、パス名コンポーネントがパス名の末尾にあるかどうか、および実行している機能によって動作が異なります。

\ls -F lnkマニュアルページでは動作を検索または指定しませんでしたが、\ls lnkIEEEおよびOpen Group(2018b)では見つかりました。

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

答え2

正式な答えはわかりませんが、次のようになります。

  • このディレクトリには「lnk」という名前があります。それが何であるかわからない。
  • ls -F lnk- 名前の種類を表示します。
  • ls -F lnk/- 以下は、タイプタグで指定されたパスの下のすべてのファイルを表示するパスです。
  • ls lnk/- 指定されたパスの下のすべてのファイルを表示するパスは次のとおりです。
  • ls lnk- オペレーティングシステムがファイルが何であるかを判断し、最も論理的な情報を表示するように要求します。

注:この場合、リンクかどうかは関係ありません。私は「名前」と「パス」だけを考慮します。

関連情報