ディレクトリ内のいくつかのファイルを見つけようとしています。デフォルトでは、find command
は、指定したディレクトリとそのサブディレクトリを検索しています。
私はdepth/maxdepth
とPrune
を使用しようとしましたが、これを克服するのに役立ちました。 Solarisでdepth/Pruneを使用する正しい方法を誰かが指摘できますか?
私のコードは次のようになります:
find file_path -depth 1 -name '*.log'
次のエラーが発生します。
find: bad option 1
find: [-H | -L] path-list predicate-list
漠然と類似した名前を持つ2つの無関係なオプションを混乱させています。
-depth
は引数を取りません。存在する場合、ディレクトリ自体を処理する前にディレクトリの内容を処理するようにfind
に指示します。-maxdepth N
(Nは整数)は、再帰をNレベルのサブディレクトリに制限します。-maxdepth
オプションは、find
の一部のバージョンにある拡張機能ですが、Solarisにはありません。 find
の標準オプションのみを使用して、再帰せずにディレクトリを処理するコツがあります。サブディレクトリで-Prune
を使用しますが、トップレベルディレクトリは除外します。トップレベルディレクトリを照合する唯一の方法は名前によるため、名前が.
(サブディレクトリの名前になることは決してない)になるように調整します。
find /directory/to/traverse/. -name . -o \
-type d -Prune -o \
-name '*.log' -print