すべてのサブディレクトリを検索して、特定の名前のサブディレクトリを見つけるにはどうすればよいですか?


12

最上位のディレクトリと呼ばれる/dirサブディレクトリがたくさんあるとしましょう。のサブディレクトリを検索して、/dir呼び出されたサブディレクトリを見つけるにはどうすればよいx/x/dir/x/x/x/targetですか?

この質問は、私が探しているものと似ていますが、正確ではありません。特定のサブディレクトリのfindコマンドです

ファイルを探すのではなく、特定の名前のディレクトリを探します。

回答:


17

お試しくださいfind /dir -type d -name "your_dir_name"

/dirディレクトリ名に置き換え"your_dir_name"、探している名前に置き換えます。

-type dfindディレクトリのみを検索するように指示します。


1

1つ以上のディレクトリを見つけてgitリポジトリで古いメールアドレスを見つけるようなものを検索するためのより一般的な解決策については、次のパターンを見てください。

find . -type d -name .git -print0|\
    xargs -0r -I {} find {} -type f -print0 |\
    xargs -0r grep -e 'my.old@email.address'

1
echo **/target

または、1行に1つの一致を取得するには:

printf %s\\n **/target

これは、zshでそのまま使用できます。bashでは、shopt -s globstar最初に実行する必要があります。これにより、ディレクトリへのシンボリックリンクも走査されることに注意してください。ksh93では、set -o globstar最初に実行する必要があります。

ディレクトリまたはディレクトリへのシンボリックリンクのみに一致させる場合は、末尾に/(つまり**/target/)を追加します。zshのでは、ディレクトリではなく、ディレクトリへのシンボリックリンクのみに一致するように、それを作ります**/target(/)

どのシェルでも、find次のコマンドを使用できます。

find . -name target

LinuxおよびCygwinでは、.はオプションです。ディレクトリのみを照合する場合は、を追加し-type dます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.