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

Linuxでディレクトリのみを一覧表示する方法

Linuxのlsコマンドは、任意のディレクトリの内容を一覧表示するために使用されます。

デフォルトでは、ファイル、ディレクトリ、リンク、名前付きパイプなど、すべてのコンテンツが一覧表示されます。

しかし、ディレクトリのみを一覧表示したい場合はどうでしょうか。どうしますか?

Linuxの他のものと同様に、同じタスクを実行する方法はいくつかあります。ディレクトリのみをリストすることも同じです:

  • ls -d * /
  • ls -l | grep'^ d'
  • 検索。 -maxdepth 1 -type d
  • エコー*/
  • tree -d -L 1

心配しないで。詳細に説明します。ここでの例で使用するディレクトリの内容は次のとおりです。

lsコマンドを使用してディレクトリのみを一覧表示する

これはディレクトリのコンテンツを表示するために使用するコマンドであるため、使い慣れたlsコマンドを使用して実行することをお勧めします。

サブディレクトリのみを一覧表示するには、-dを使用します このようなlsコマンドのオプション:

ls -d */

表示される出力は次のとおりです。

[[email protected] Documents]$ ls -d */
another_dir/  my_dir/

なぜ*/ ?それがないと、ls -d ディレクトリ名のみを返します。 -d オプションリストディレクトリの内容(ファイル、ディレクトリなどを含む)ではありません。

*/ パターンです。 *を使用 、すべてのコンテンツ(サブディレクトリのコンテンツを含む)と/を一覧表示します パターンをディレクトリに制限します。

この写真は違いをかなりよく表しています。

ロングリストオプション-lと組み合わせることができます およびその他のほとんどのオプション:

[[email protected] Documents]$ ls -ld */
drwxrwxr-x. 1 abhishek abhishek 16 Nov  7 18:22 another_dir/
drwxrwxr-x. 1 abhishek abhishek 44 Nov  7 18:22 my_dir/

ディレクトリ名の末尾にスラッシュ(/)を付けたくない場合は、cutコマンドを使用して切り取ることができます。

[[email protected] Documents]$ ls -ld */ | cut -f1 -d'/'
drwxrwxr-x. 1 abhishek abhishek 16 Nov  7 18:22 another_dir
drwxrwxr-x. 1 abhishek abhishek 44 Nov  7 18:22 my_dir
特定のディレクトリ内のサブディレクトリのみを一覧表示します

上記のコマンドは、現在のディレクトリで機能します。同じディレクトリにいない場合はどうなりますか?

この状況では、*/を使用できます ls -dを使用してディレクトリのパスの最後に :

ls -d Path/To/Dir/*/

これは、Documentsディレクトリから移動して、Documentsディレクトリ内のディレクトリのみを一覧表示する例です。

[[email protected] ~]$ ls -ld Documents/*/
drwxrwxr-x. 1 abhishek abhishek 16 Nov  7 18:22 Documents/another_dir/
drwxrwxr-x. 1 abhishek abhishek 44 Nov  7 18:22 Documents/my_dir/

隠しディレクトリがリストされていないことに気づきましたか?これがこの方法の欠点の1つです。 ls -d .*/を使用できます 隠しディレクトリを表示しますが、隠しディレクトリのみを表示します。

lsとgrepコマンドの組み合わせを使用する

特定のコンテンツの出力をフィルタリングするために、古き良きgrepコマンドをいつでも信頼できます。

内容を長くリストすると、dで始まるため、ディレクトリを識別できます。 。

grepを使用して、dで始まるコンテンツをフィルタリングできます:

ls -l | grep '^d'

ただし、これにより、ディレクトリ名だけでなく、はるかに多くのフィールドが提供されます。

[[email protected] Documents]$ ls -l | grep '^d'
drwxrwxr-x. 1 abhishek abhishek 16 Nov  7 18:22 another_dir
drwxrwxr-x. 1 abhishek abhishek 44 Nov  7 18:22 my_dir

findコマンドを使用してディレクトリのみを一覧表示します

findコマンドを使用してサブディレクトリのみを一覧表示する方法は次のとおりです。

find directory_path -maxdepth 1 -type d

findコマンドに精通していることを願っています。それでも説明します。

type dを使用 、ディレクトリのみを検索するようにfindコマンドに要求します。

maxdepth 1を使用 検索を現在のレベルでのみ維持するように(サブディレクトリ内には入れないように)findコマンドに要求します。

[[email protected] Documents]$ find . -maxdepth 1 -type d
.
./my_dir
./another_dir
./.my_hidden_dir

上記の出力でわかるように、隠しディレクトリも表示されます。

ツリーコマンドを使用してディレクトリのみを一覧表示する

ディレクトリのみを一覧表示することが目的の場合は、treeコマンドを使用することもできます。

デフォルトでは、treeコマンドは完全なディレクトリ構造を提供します。ディレクトリのみを現在のレベルでのみ表示するように変更できます。

tree -dai -L 1
  • d-ディレクトリのみを検索します
  • a-非表示のファイルとディレクトリも探します
  • i-ツリー構造を表示から削除します
  • L1-サブディレクトリに入らないでください

出力は次のとおりです:

[email protected] Documents]$ tree -dai -L 1
.
another_dir
my_dir
.my_hidden_dir

3 directories
ディレクトリを一覧表示するためのechoコマンドの使用

ありそうもない候補? Linuxのechoコマンドは、ディレクトリの内容を表示するためにも使用できることを知って驚かれることでしょう。 echo *を使用してみてください 自分の目で確かめてください。

lsコマンドと同様に、*/を使用することもできます 現在の作業ディレクトリ内のディレクトリのみを一覧表示するパターン。

echo */

これは、ls -dで取得したものと同じ出力です。 コマンド:

ファイルではなく、ディレクトリのみを一覧表示する方法は他にもあります。実際、ここで説明する方法には、探しているものに基づいて、いくつかのifとbutが含まれる場合があります。

ディレクトリを表示するだけの場合は、ここで説明したコマンドのほとんどが機能します。ディレクトリ名をスラッシュなどで取得するなど、より具体的なものが必要な場合は、自分でフォーマットを行う必要があります。

このLinuxのヒントがお役に立てば幸いです。質問や提案はいつでも歓迎します。


Linux
  1. LinuxでSuコマンドを使用する方法

  2. Linux ls コマンド - ファイルの一覧表示

  3. Linux でロックされているすべてのユーザーを一覧表示するにはどうすればよいですか?

  1. Linuxでユーザーを一覧表示する方法、すべてのユーザーを一覧表示するコマンド

  2. Linuxコマンド:テキストファイルのみを「検索」する方法は?

  3. LinuxでCでディレクトリを再帰的にリストする方法は?

  1. LinuxでDisownコマンドを使用する方法

  2. LinuxSSコマンドの使用方法

  3. Linuxでファイルを複数のディレクトリにコピーする方法