サブディレクトリを繰り返し検索せずに、あるディレクトリのマスクですべてのファイルを取得しようとしています。オプションはありません-maxdepth 0
そのためにAIXで。
-prune
について聞いたことがあります 、しかしそれでもそれがどのように機能するかを理解することはできません。
コマンドは次のようになります
find dir \( ! -name dir -prune -type f \) -a -name filemask
しかし、それは機能しません。
正しいコマンドを書いて、それがどのように機能するか説明していただけませんか?
UPD
コマンドのようです
find dir ! -path dir -prune
すべてのファイルとカタログをdir
に出力します 、ただし、dir/*
内のファイルとカタログは不可 、だから私はそれを私の場合に使うことができます。
承認された回答:
必要なもの:
find dir/. ! -name . -prune -type f -name filemask
または:
find dir ! -path dir -prune -type f -name filemask
filemask
と呼ばれる通常のファイルを見つけるには dir
で dir
のサブディレクトリを検索せずに 。
find dir ! -name dir -prune
、dir/dir
があった場合は問題が発生します ディレクトリ。
dir/.
find
のため、アプローチはそれを回避します .
それよりもdir/.
引数として渡されたファイル。
-path
アプローチは、ファイルのファイルパス(名前だけではなく)、-path dir
を調べることで、この問題を回避します。 dir
で一致します 、ただしdir/dir
にはありません (つまり、dir
整理されない唯一のディレクトリになります)。 -path
ただし、古いバージョンのAIXでは使用できない場合があります。
より一般的には、GNUの-maxdepth n
に相当する標準の場合 、POSIX検索を特定の深さに制限するを参照してください。