Ne var +
içinde find /path/ -exec command '{}' +
do? aksinefind /path/ -exec command '{}' \;
Ne var +
içinde find /path/ -exec command '{}' +
do? aksinefind /path/ -exec command '{}' \;
Yanıtlar:
'+' Çalıştırılacak komut sayısını en aza indirmek için bulunan tüm dosyalardan büyük bir komut satırı oluşturur.
Bir find komutunun dört dosya bulması durumunda.
find . -type f -exec command '{}' \;
üretecekti
command file1
command file2
command file3
command file4
Diğer yandan
find . -type f -exec command '{}' \+
üretir
command file1 file2 file3 file4
Man sayfasından:
-exec komutu {} +
-Exec eyleminin bu değişkeni, seçilen dosyalarda belirtilen komutu çalıştırır, ancak komut satırı, seçilen her dosya adı sonuna eklenerek oluşturulur; komutun toplam çağrı sayısı, eşleşen dosya sayısından çok daha az olacaktır. Komut satırı, xargs'ın komut satırlarını oluşturduğu gibi oluşturulur. Komutta yalnızca bir {}} örneğine izin verilir. Komut başlangıç dizininde yürütülür.
find
bana bir yarı veriyor.
xargs
,-exec … {} +
aynı yapar-print | xargs …
, ancak alıntı sorun olmadan (-print0 | xargs -0
başka bir yoludur, ancak daha az taşınabilir).