与えられたコマンドを正常に終了させたすべてのファイルを見つけようとします(終了コード0)。
検索マニュアルページには -exec が記載されています。Execute command; true if 0 status is returned.
以下にリストされていますが、Actions
これはcommand
、指定された端がゼロのファイルが表示されることを意味すると仮定します。
しかし、過去の使用と試みではfind . -exec true \;
結果find . -exec false \;
が出てこなかったので、私が間違っていたことが証明されました。
呼び出しの例は、find . -exec ./is_dir.py {} \;
見つかったすべてのディレクトリを印刷する必要があることです。 (この特別なケースについてテストできることを知っています。実際の要件を満たすテストの組み合わせが見つかりません。)
私の質問を十分に定式化できなかったため、検索結果が表示されませんでした。
答え1
あなたはできます:
find . -exec ./is_dir.py {} \; -o -print
ディレクトリを除くすべてのエントリが一覧表示されます。is_dir.py
実行可能で、次の内容が含まれているとしますchmod +x is_dir.py
。
#!/usr/bin/env python
import sys
import os
if os.path.isdir(sys.argv[1]):
sys.exit(0)
sys.exit(1)
is_dir.py
独自の出力を生成する場合は、次のことができます。
rm -f nondir.lst
find . -exec ./is_dir.py {} \; -o -exec echo {} >> nondir.lst \;
これにより、その出力は失敗した名前のリストと混在しませんis_dir.py
。