GNU/Linux >> Linux の 問題 >  >> Linux

コマンド「ls -d」でディレクトリが表示されません。ファイルとディレクトリの代わりにディレクトリのみを表示するように「ls」を取得する方法はありますか?

あなたの期待は DOS Think/Windows Think に基づいており、間違っています。 MS-DOS、Windows、およびその他のいくつかの IBM/Microsoft オペレーティング システムでは、ワイルドカードの展開はコマンド自体によって行われ、/a のようなものです。 dir へのオプション コマンドは、ワイルドカード展開中に属性フィルターとして機能します。 dir * のようなワイルドカードを展開します 、コマンドインタープリターがそのまま渡す、および /a の場合 が指定されている場合、返されるものに適切なフィルターが適用されます。 (一部のオペレーティング システムでは、ディレクトリを列挙するためのシステム コールに属性フィルターを与えることができ、オペレーティング システム カーネルまたはそのファイルシステム ドライバーがそれ自体を適用します。)

Unices と Linux では、ワイルドカードの展開はシェルによって行われ、パーミッションは無視されます。ルート ディレクトリで

ls *

ls は何ですか コマンド自体が受け取る シェルからは(のようなもの)

ls bin home opt var boot dev tmp etc lost+found root usr

-d とは /--directory オプションは通常次に起こることをオフにするです .通常次に起こるのは ls です 各引数を順番に見て、それらがディレクトリであることを確認し、その内容を列挙することを決定します。ファイルに名前を付ける引数の場合、ファイル自体の情報を出力するだけです。 -d で オプションを指定すると、ディレクトリはファイルと同じように扱われます。だから ls ファイルの場合と同様に、引数として渡された各ディレクトリの情報を出力します。

だから -d そうではない 「ディレクトリのみを印刷する」オプション。実際、そのようなオプションがないだけではありません。 あり得ない そのようなオプション。ワイルドカード展開はシェルによって行われ、(POSIX sh 少なくとも) * を展開するときにパーミッションとファイル タイプ ビットをチェックするようにシェルに指示する方法はありません。 名前のリストに。ディレクトリ名のみのリストを取得するには、 find を使用する必要があります ztank1013 で説明されているコマンド 、またはスラッシュで終わるパス名がディレクトリエントリ . を意味するというトリックを使用する 、 Jin で説明されているように . (Jin のトリックは ls で終わります 引数を受け取るコマンド

ls bin/ home/ opt/ var/ boot/ dev/ tmp/ etc/ lost+found/ root/ usr/

パターン */ のため 実際、パス名は 2 つのコンポーネントで一致しており、2 つ目は空であるため、まったく一致しません。 望まれたことをしている。特に、ディレクトリを指すシンボリック リンクをディレクトリであるかのように扱います。)

ls -d の振る舞い * なし 上記の単純な拡張です。 ls についてもう 1 つ知っておく必要があります。 :引数が指定されていない場合、デフォルトの引数 . を想定します。 . なし -d オプションを指定すると、前述の動作により、. という名前のディレクトリの内容が表示されます 列挙され、その内容に関する情報が表示されます。 一緒に -d オプション、ディレクトリ . はファイルのように扱われ、その内容が列挙されるのではなく、それ自体の情報が表示されます。


ls -d */ を使用できます 、または ls -d .*/ 隠しディレクトリ用。


これを試してください

 find . -mindepth 1 -maxdepth 1 -type d

現在の場所の下のディレクトリだけを取得します。


Linux
  1. コマンドラインを使用してディレクトリ内のファイルの数を取得するにはどうすればよいですか?

  2. 特定のプロセスで実行されるユーザー、pid、およびコマンドのみを取得するにはどうすればよいですか? (Ubuntu 11.10)

  3. cp ファイルのみ、ディレクトリをスキップ

  1. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  2. Linuxでファイルとディレクトリを隠す簡単な方法

  3. Linuxで最大のファイルとディレクトリを探す

  1. Linuxを使用してディレクトリとファイルを削除する方法

  2. LinuxのNOTディレクトリのディレクトリ内のファイルのみを削除します

  3. コマンド ラインから .iso ファイルのボリューム ID を変更する方法はありますか?