ソラリスの深さ/剪定と同じですか?

ソラリスの深さ/剪定と同じですか?

ディレクトリ内のいくつかのファイルを見つけようとしています。既定では、Find はcommand私が指定したディレクトリとそのサブディレクトリを検索します。

試してみましたdepth/maxdepthが、pruneこの問題を解決するのには役に立ちませんでした。 Solarisで奥行き/剪定を使用する正しい方法を指摘できる人はいますか?

私のコードは次のとおりです

find file_path -depth 1 -name '*.log'

次のエラーが発生します。

find: bad option 1
find: [-H | -L] path-list predicate-list

ベストアンサー1

あいまいに似た名前を持つ2つの無関係なオプションを混同しています。

  • -depth何の主張も受け入れられませんでした。存在する場合は、findディレクトリ自体を処理する前にディレクトリの内容を処理するように指示します。
  • -maxdepth N(ここで、Nは整数)再帰をNレベルのサブディレクトリに制限します。

この-maxdepthオプションは一部のバージョンでは拡張ですが、findSolaris バージョンではそうではありません。再帰なしでディレクトリ操作に標準オプションを使用するfind方法があります。-pruneつまり、サブディレクトリに使用し、最上位ディレクトリを除外します。最上位ディレクトリを一致させる唯一の方法は名前を基準にすることなので、名前を並べ替えます.(サブディレクトリの名前ではありません)。

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print

おすすめ記事