
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.