Gizli dosyaları veya dizinleri içeren tekrarlı olarak bir dizin Chown


37

Özyinelemeli bayrağı ile chown gibi görünüyor gizli dizinleri veya dosyaları üzerinde çalışmayacak. Bunun için basit bir geçici çözüm var mı?

Yanıtlar:


56

-RBayrağın işe yarayacağına eminim - yine de benim için her zaman vardır. Ne işe yaramayacak ve komut satırı kullanımımın başlarında beni tetikleyen *, gizli dosyalar / dizinlerin bulunduğu bir dizinde kullanılıyor . Yani yapıyor

$ chown -R /home/user/*

Gizli dosya ve klasörleri yapmayacak. Ancak takip ederseniz

$ chown -R /home/user/.[^.]*

o zaman tüm gizli dosyaları yapacaksın (ama yapmayacaksın .ya ..da /home/user/.*yapmayacaksın). Bunları söyledikten sonra beklerdim

$ chown -R /home/user

tüm gizli dosyaları ve dizinleri içeri almak için /home/user- bu elbette dizinin kendisinin izinlerini de değiştirecektir, bu da sizin istediğinizi olmayabilir.


3
Dizinde bir işlem yapmanın chown, dizinin kendisinin yanı sıra, içeriğinin tamamındaki izinleri değiştirmenize ya da dilediğiniz ya da istemeyeceğiniz yan etkisi vardır.
wfaulk

A + benim için bir cazibe gibi çalıştı.
SuperFamousGuy

Denedim chown nginx:nginx -R /path/to/.[^.]*ve yalnızca gizli dosyaları değiştirerek sahipliğini değiştirdi. Hepsi değil.
Pathros

@wfaulk @Hamish Downer tarafından bahsedildiği gibi, tüm dosyaları almak *için ikisini de yapmalı ve takip etmelisiniz .[.^]*.
god_is_love

9

Aşağıdaki komutun bunun için çalışması gerektiğine inanıyorum.

chown -hR userid:usergroup /nameofdirectory/nameofsubdir/

1
-h referans verilen herhangi bir dosya yerine sembolik bağları etkiler (yalnızca sembolik bağlantıların mülkiyetini değiştirebilen sistemlerde yararlıdır)
R. van Twisk

8

"chown -R" işe yarıyor, fakat alternatif bulmayı kullanıyor olabilir.

 find /path/to/dir -exec chown USER {} \;

5
GNU Bul ile kullanılarak notu o +yerine ;o dosya / dizine başına bir çatal yerine chown işlemi çatal minimum gerekli numarasını kullanmak gibi -exec için sonlandırıcı olarak daha verimli olacak
güveç

3

dotglobGenişletmek için niteliği geçici olarak değiştirebilirsiniz . dosyaları ve sonra geri döndürün.

shopt -s dotglob; chown -R user:group FOLDER; shopt -u dotglob

Daha fazlası buradadotglob bulunabilir


2

For döngüsü ile kullanma ls -Aseçeneği, Hepimiz gizli dosyaları bulabilirsiniz ve dizin dışlamak .ve ..sonra da tüm gizli dosyalar ve dizin için sahipliği değiştirme.

for i in `ls -A | grep "^\."`;do chown -R user:group $i;done

xargsSeçeneğini kullanınls -A

ls -A | grep "^\." | xargs chown user:group

Daha fazla ayrıntı için Buraya Tıklayın ve Sitemi Ziyaret Edin


1

Ayrıca, eğer benim gibiyseniz, muhtemelen şu anki dizinden chown ile çalışıyor olacaksınız. Ben böyle çalışan alışık edildi: chown rails.rails -R *. Yıldız işaretini bir noktaya (şu anki dizinin kısaltması) değiştirmek, bunun gibi chown rails.rails -R .gizli dizinleri getirir.


2
Yan etki sayesinde, istediğiniz dizinin içeriğini ve içeriğini, dizinde bulunan izinleri değiştirirsiniz.
wfaulk

1

chownGizli dosyalar ve dizinlerle çalışacaktır. Aşağıdaki örnekte, içindeki tüm dosyalar için kullanıcı ve grup sahipliğini değiştireceğiz ~/some/folder. Tüm dosyalar tümünü içerir gizli dosyaları (örneğin .bashrc, .profileen vb) ve klasörler ~/some/folderseviyesi ve aşağıda. Özellikle sahipliğini değiştirmek istemediğimizi ~/someve bu nedenle dosyayı ~/some/..sahiplik değişikliklerinin dışında tutacağımızı unutmayın .

$ cd ~/some/folder 
$ sudo chown -R usrname:grpname . 
$ 

Bu benim için çalıştı
klor

0

TÜM dosyaları geçerli dizinde ve geçerli kullanıcı için alt dizinlerde boy göstermek;

find . -exec chown $(whoami) {} \;

veya kullanıcı kısıtlı izinler nedeniyle bazı dosyaları chown edemezse;

sudo find . -exec chown $(logname) {} \;

-2

Gibi bir şey yapabilirsin

for i in `ls -A`;do chown -R user:group $i;done

-A( Sermaye A) o hariç tutar kadar önemlidir. '' ve '..'


Bu, yalnızca geçerli dizindeki dosyaları ve alt dizinleri değiştirir, alt düzeyleri değiştirmez. (OP'nin istediği şey olabilir.) Ayrıca dosya adlarında ve dizin adlarında bunlarda boşluk (veya sekme) bulunan metinleri kıracak.
wfaulk
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.