Yanıtlar:
Find (1) yardımcı programı, "!" Kullanılarak reddedilebilen ("ters çevrilebilir") primerlere sahiptir. Şebeke. Ancak komut isteminde, bir kabuk metakaraktüsü olduğu için olumsuzlamadan ters eğik çizgiden kaçmak gerekir. Sonuç:
find . \! -user foo -print
xargs -I{} -P3 -- ${cmdhere} {}
her dosyada paralel olarak $ {cmdhere} çalıştırabilir. cmdhere :: = standart unix araçları; standart unix utils :: = chmod, chown, stat, ls, ...
find . ...
borulama xargs
?
find . ! -user foo -exec chown <owner>:<group> {} \;
Birisine ait OLMAYAN dosyalar aranıyor
Diğerleri , vücutta "Belirli bir kullanıcının sahibi OLMADI " sorusunu yanıtladı . Başlıca soruyu cevaplayan ancak henüz sağlanmayan bir soru:
$ find / -nouser
Şöyle kullanabilirsiniz:
$ sudo find /var/www -nouser -exec chown root:apache {} \;
Ve ilgili bir tane:
$ find / -nogroup
-user
kullanıcı veya kullanıcı kimliğine göre bulur ve !
yüklemi tersine çevirir. Yani ! -user ...
,.
Bunu kullanabilirsiniz:
find <dir> ! -user <username>
Z-shell (zsh) kullanarak şunları kullanabilirsiniz:
ls -laR *(^U)
veya
ls -la **/*(^U)
size ait olmayan özyinelemeli tüm dosyaları aramak için.
-a
, joker karakter genişletmesi nedeniyle bayrakla bile nokta dosyalarını listelemeyeceği doğrudur . Nokta yakalamak için dosyaları zsh kullanmak dotglob
seçeneği: setopt dotglob
. Bir satırda: (setopt dotglob; ls **/*(^U) )
. Parantezler bir alt kabukta çalıştırılacaktır, böylece setopt nodotglob
bitirdikten sonra çalıştırmanız gerekmez .
!
isteğe bağlı gibi görünüyor