Linuxでディレクトリ構造を見つける方法

Linuxでディレクトリ構造を見つける方法

RHEL v6.x現在のディレクトリ内の特定のディレクトリ構造を検索するための Linux コマンドを探しています。

現在のディレクトリ内の特定の単一ディレクトリを検索する以下のコマンドは知っていますが、これは単一ディレクトリには機能しますが、ディレクトリ構造には機能しません。

機能:

find /home/dir1/* -name "def"


動作しません:

find /home/dir1/* -name "abc/def"

以下のコマンドも試しましたが、このディレクトリ内のファイルもリストされます。しかし、このディレクトリ内のファイルをリストしたいわけではありません。このabc/defディレクトリ構造を持つすべてのディレクトリの完全なパスのみをリストしたいのです。

locate abc/def/

どなたか助けてください。

前もって感謝します。

答え1

テスト-nameは最後のパス コンポーネントのみに一致します。次のようなものを一致させるには、abc/def以下が必要です-path

$ mkdir -p somedir/otherdir/abc/def/ghi
$ find somedir -path '*/abc/def'
somedir/otherdir/abc/def

答え2

これはどう。

find /home/dir1/ -type d | grep 'abc/def'

または、特定の深さまでのディレクトリのみをリストしたい場合。

find /home/dir1/ -maxdepth 2 -type d | grep 'abc/def'

-d - directory

-maxdepth levels of directories below the starting-points.

答え3

tree <base dir>
       -L level
             Max display depth of the directory tree.
       -P pattern
              List  only those files that match the wild-card pattern.

関連情報