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.

関連情報