Cara menjalankan file yang ditemukan oleh find

1

Saya memiliki beberapa file yang dapat dieksekusi di bawah pohon direktori. Saya ingin menemukan mereka dan mengeksekusi mereka dengan cara yang paling sederhana. Saya sudah mencoba ini sejauh ini: find . -perm 0775 -type f | xargs exec Tapi exec bukan executable, ini adalah bash internal. Saya bisa membuat skrip pembungkus yang bisa terlihat seperti ini:

#!/bin/bash
# exec.sh
exec $1

Dan kemudian bisa lari. find . -perm 0775 -type f -exec ./exec.sh {} \; Tapi pasti ada cara yang lebih elegan dan lebih pendek untuk melakukannya.

Gabor Marton
sumber

Jawaban:

4

Lepaskan skripnya.

find . -perm 0775 -type f -exec '{}' ';'

berfungsi dengan baik!

Jan Hudec
sumber
0

xargstidak benar-benar cocok untuk melakukan ini; ini terutama dimaksudkan untuk menyediakan perintah tetap dengan argumen yang dibaca dari input standar.

Tetapi Anda dapat memanggil program secara langsung menggunakan loop shell sederhana:

find . -perm 0775 -type f | while read program; do
                                $program
                            done
JyrgenN
sumber