AIXで同等の最大検索深さ

AIXで同等の最大検索深さ

サブディレクトリから再帰的に検索するのではなく、マスクを介して特定のディレクトリ内のすべてのファイルを取得しようとしています。-maxdepth 0AIX にはそのようなオプションはありません。

聞いたことはありますが、-pruneまだどのように機能するのか理解していません。

コマンドは次のようになるはずです。

find dir \( ! -name dir -prune -type f \) -a -name filemask

しかし、うまくいきません。

正しいコマンドを作成し、それがどのように機能するかを説明できますか?

UPD

注文だと思います。

find dir ! -path dir -prune

私の場合に使用するためにすべてのファイルとディレクトリを印刷しますdirが、ファイルとディレクトリは印刷しません。dir/*

ベストアンサー1

あなたが望むもの:

find dir/. ! -name . -prune -type f -name filemask

または:

find dir ! -path dir -prune -type f -name filemask

filemaskdirで検索する必要なしに呼び出された一般的なファイルを見つけるにはdir

の場合、ディレクトリfind dir ! -name dir -pruneがあれば問題があるのです。dir/dir

引数として渡されたファイル以外に呼び出される他のファイルは見つからないため、このdir/.方法を使用するとこの問題が解決されます。find.dir/.

この-path方法では、ファイルのファイルパス(名前のみではない)を確認してこの問題を解決します。このパスは-path dir一致しますdirが一致しませんdir/dir(したがってdirクリーンアップされない唯一のディレクトリになります)。-pathただし、以前のバージョンのAIXでは使用できない可能性があります。

より一般的には、GNU標準に対応するものについては、-maxdepth n以下を参照してください。POSIX照会を特定の深さに制限しますか?

おすすめ記事