/dir
というトップレベルのディレクトリと多くのサブディレクトリがあるとします。 /dir
のサブディレクトリを検索して、x/x/dir/x/x/x/target
というサブディレクトリを見つけるにはどうすればよいですか?
この質問は、私が探しているものと似ていますが、正確ではありません: 特定のサブディレクトリのコマンドを見つける 。
ファイルを探すのではなく、特定の名前のディレクトリを探します。
find /dir -type d -name "your_dir_name"
をお試しください。
/dir
をディレクトリ名に置き換え、"your_dir_name"
を探している名前に置き換えます。
-type d
は、ディレクトリのみを検索するようにfind
に指示します。
1つまたは複数のディレクトリを見つけてgitリポジトリで古いメールアドレスを見つけるようなものを検索するためのより一般的なソリューションについては、次のパターンを見てください。
find . -type d -name .git -print0|\
xargs -0r -I {} find {} -type f -print0 |\
xargs -0r grep -e '[email protected]'
_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
_を追加します。