「ls」と「ls -p」の違いは何ですか?

「ls」と「ls -p」の違いは何ですか?

Linux のコマンドlsとコマンドの違いを教えていただけますか?ls -p

答え1

この-pオプションは/ディレクトリの末尾に を追加し、出力のどれがディレクトリでどれがファイルであるかを簡単に検出するのに役立ちます。

と同様のオプションは-p-F次の文字を使用して以下を示します。

  • /--> ディレクトリ
  • @--> シンボリックリンク
  • |--> fifo ファイル (名前付きパイプ)。

一方、lsこれらのいずれも行いません。

これらのオプションは、 のようなオプションを使用しない場合--colorや、端末が出力の色付けをサポートしていない場合に役立ちます。


$ ls
block   dm-1    hwrng

どれがディレクトリでどれがファイルなのかを見分けるのは難しいですよね? つまり:

$ ls -p
block/   dm-1    hwrng

blockこれでディレクトリであることがわかりました。

答え2

ls -p/フォルダ名の後にを追加しますls。追加しません。

答え3

man lsLinuxコマンドのドキュメントが全て載っています)

ls

   ls - list directory contents

ls -p

   -p, --indicator-style=slash
          append / indicator to directories

答え4

の効果に気付かない場合は-p、何lsにエイリアスされているかを確認する必要があります。

他の人が言っているように、ls -pはディレクトリ名に末尾の を付けて表示します/。ただし、 や などのフラグは-p効果-Fがないように見えるため、どのような機能を果たすのかを尋ねる人もいます。

通常、効果は明ら​​かに現れます。

ek@Io:~/tmp$ ls
directory  regular-file
ek@Io:~/tmp$ ls -p
directory/  regular-file

lsただし、オプションを追加するシェル エイリアスをユーザーが持つことは一般的です。これらのオプションの1つが、-pまたはディレクトリ名の末尾にスラッシュを追加する別のオプションである場合-p自分自身を追加しても何も変わりません。

Ubuntu では、type ls通常は が表示されますls is aliased to `ls --color=auto'。(このエイリアスは、ユーザー アカウントの作成時に からコピーされるalias ls='ls --color=auto'ユーザーのファイルでによって提供されます。) ユーザーが対話型シェル プロンプトで実行すると、 に置き換えられます。.bashrc/etc/skellsls --color=auto

-pを に渡しても効果がないと思われる場合はls、 または を実行してみてくださいtype lsalias ls( のシェル関数が存在する可能性はまれですが、あるためls、ここで何が起こっているのかを把握するよりtypeも、 の方が信頼性があります。) 、、、またはを含むエイリアスがあることがわかる場合があります。aliasls-p--indicator-style=slash-F--classify

エイリアスの拡張を回避する方法はいくつかあります。

command ls
\ls
/bin/ls

ls3 番目のコマンドは、実行ファイルが の場合にのみ同等です。ほとんどの場合、これは当てはまります。2 番目の実行ファイルが別の場所に追加された/bin/ls場合にのみ異なります。実行して確認してください。lstype -a ls

関連情報