Belirli bir kullanıcı tarafından sahip olunan tüm dosyaları tekrarlı bir şekilde oluşturun


32

Belirli bir kullanıcının sahip olduğu tüm dosyaları bulmak ve silmek mümkün müdür? Yanlış kullanıcı olarak bir sürü şey yaptım ve dosyaların doğru şekilde sahipliğini vermem gerekiyor.

Bir sürü dosya ve dizin hazırlayabilmemin özyineli ve şartlı bir yolu var mı?

Yanıtlar:


60

Bu taşınabilir bulma komutunu bunun gibi bir şeyle kullanabilirsiniz.

find . -user old-user -exec chown new-user:new-group {} \;

-Ad seçeneği olan belirli dosyaları bulmak için bunu genişletebilirsiniz (POSIX dışında ancak OSX’te kullanılabilir)

find . -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

. geçerli klasör ve altındakiler anlamına gelir, böylece belirli bir yolu temel olarak kullanabilirsiniz.

find /var/www/ -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

Ne aramıştım? Ama sadece chown sonrası seçeneklerin new-user:new-usermuhtemelen söylemeliyim kinew-user:new-group
Henesnarfel

2
Kıvrımlı parantezlerin boşluklu yolları düzgün bir şekilde işlemesi için tırnak içinde olması gerektiğini tahmin ediyorum. Yanifind . -user old-user -exec chown new-user:new-group "{}" \;
Dan Benamy

Başka birinin belirli bir kullanıcıya ait olmayan dosyaları (bu kullanıcının sahibi olmayan bir ev dizinindeki dosyaları) nasıl bulacağını arıyorsa , '!' -user other-usertersini bulmak için bölüme gidin. Örneğin find . ! -user other-user,.
Jon

Genellikle, yukarıdakileri eklediğinizde daha yararlı olur -group old-group. Bu şekilde grup sahipliğini koruyabilirsiniz (admin, staff, sillyothergroupname)
brianlmerritt

ps - chown sudo gerektirebilir
brianlmerritt

12

Kullanabilirsiniz

chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group  *

Kılavuzdan chown --help:

  --from=CURRENT_OWNER:CURRENT_GROUP
                     change the owner and/or group of each file only if
                     its current owner and/or group match those specified
                     here.  Either may be omitted, in which case a match
                     is not required for the omitted attribute.

düzenleme : Bu, tabii ki, sadece linux ve çoğu UNIces üzerinde çalışır . OSX için (BSD tabanlıdır) @StephenTrapped çözümüne bakın.


+1 ancak bu OSX'te çalışmayacak, chownbu seçeneğe sahip değil, buraya bakın .
terdon

Maalesef, osx etiketini kaçırdım :) Voted @StephenTrapped.
Rik

chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group *Klasör komutundaki gizli dosyaları atlar, ancak chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group .üst klasördeki gizli dosyalar için de çalışır.
Lashae

3

-hChown seçeneği sembolik bağlantı dosyalarının kendileri ve sadece hedefin izni değiştirir.

Bu sürümler arasında geçiş yapmak için symoblic bağlantıları kullanan yazılım ikili klasörlerde bunu yaparken çok önemli olabilir.

find . -user old-user -exec chown -h new-user:new-group {} \;

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.