Ben anlamını bilmek istiyorum {} +
içinde exec
komuta ve arasındaki fark nedir {} +
ve {} \;
. Kesin olmak gerekirse, bu ikisi arasındaki fark nedir:
find . -type f -exec chmod 775 {} +
find . -type f -exec chmod 775 {} \;
Ben anlamını bilmek istiyorum {} +
içinde exec
komuta ve arasındaki fark nedir {} +
ve {} \;
. Kesin olmak gerekirse, bu ikisi arasındaki fark nedir:
find . -type f -exec chmod 775 {} +
find . -type f -exec chmod 775 {} \;
Yanıtlar:
Kullanımı ;
(noktalı) ya da +
(artı işareti) tarafından çağrılan kabuk komutları sona erdirmek için zorunludur -exec
/ ' execdir
.
;
(Noktalı virgül) veya +
(artı işareti) arasındaki fark , bağımsız değişkenlerin find -exec
/ -execdir
parametresine nasıl aktarıldıklarıdır . Örneğin:
kullanarak ;
birden fazla komut yürütür (her bağımsız değişken için ayrı ayrı),
Misal:
$ find /etc/rc* -exec echo Arg: {} ';'
Arg: /etc/rc.common
Arg: /etc/rc.common~previous
Arg: /etc/rc.local
Arg: /etc/rc.netboot
Aşağıdaki tüm argümanlar
find
komuta argümanlar olarak alınır.Dize
{}
, işlenmekte olan geçerli dosya adıyla değiştirilir.
using +
, mümkün olan en düşük komutları yürütür (argümanlar bir araya getirildiği için). xargs
Komutun nasıl çalıştığına çok benzer , bu nedenle satır başına maksimum argüman sınırını aşmamak için komut başına mümkün olduğunca fazla argüman kullanır.
Misal:
$ find /etc/rc* -exec echo Arg: {} '+'
Arg: /etc/rc.common /etc/rc.common~previous /etc/rc.local /etc/rc.netboot
Komut satırı, seçilen her dosya adı sonuna eklenerek oluşturulur.
{}
Komut içinde yalnızca bir örneğine izin verilir.
Ayrıca bakınız:
Find komutunun üç dosyanın altına düştüğü göz önüne alındığında:
fileA
fileB
fileC
Eğer kullanırsanız -exec
bir artı (ile +
) işareti,
find . -type f -exec chmod 775 {} +
Olacak:
chmod 775 fileA fileB fileC
Komut satırı, eşleşen her dosya adının sonuna eklenerek xargs
oluşturulur; bu , komut satırlarını oluşturan şekilde olur . Komutun toplam çağrı sayısı ( chmod
bu durumda), eşleşen dosya sayısından çok daha az olacaktır.
Eğer kullanırsanız -exec
noktalı virgülle ( ;
),
find . -type f -exec chmod 775 {} \;
Olacak:
chmod 775 fileA
chmod 775 fileB
chmod 775 fileC
Başı man find
:
-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.
man find(1)
Herkes tarafından kolayca bulunabilmesi için çok ayrıntılı olarak açıklanmıştır . Tembel olma.