サブディレクトリを繰り返し検索せずに、あるディレクトリのマスクですべてのファイルを取得しようとしています。オプションはありません-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検索を特定の深さに制限するを参照してください。