Menemukan file yang gagal perintahnya

26

Saya ingin secara rekursif menemukan semua file yang skrip yang menerima file sebagai argumen mengembalikan nilai bukan nol. Adakah yang tahu bagaimana melakukan ini menggunakan 'find' atau alat serupa?

mitanyen
sumber

Jawaban:

38

find's -exectindakan dapat digunakan untuk ini:

find . \! -exec yourscript {} \; -print

akan mencetak nama semua file yang yourscriptgagal.

-execdapat digunakan dengan cara ini untuk mengubah perintah eksternal yang sesuai menjadi findtes.

Anda dapat membatasi file yang diuji dengan menambahkan findtes sebelumnya -exec; misalnya, untuk membatasi kandidat ke file biasa, tambahkan -type f:

find . -type f \! -exec yourscript {} \; -print
Stephen Kitt
sumber
8
Ekuivalen, menggunakan -o(atau): find . -exec yourscript {} \; -o -print.
John Kugelman mendukung Monica