chmod dosyaları yalnızca tüm alt dizinlerde


54

Lütfen birisi bana chmod ile yardımcı, aşağıdaki dosya yapısına sahibim

-dir1
--file1
--file2
--dir1a
---file1a1
---file1a2
--dir1b
---file1b1
---file1b2

655 ile dir1 ve all alt dizinindeki tüm dosyalara nasıl chmod yaparım ? Böylece tüm dosyalar 655 izne sahip olacak ve tüm dirler oldukları gibi kalacak.

teşekkür ederim

Yanıtlar:


108

Kullanmak daha iyi

find . -type f -exec chmod 655 -- {} +

@Sagarchalise tarafından önerilen diğer bir çözüm, eğer dosya isimleri boşluk içeriyorsa veya bir tire işareti ile başlasa işe yaramaz.


16
İlgili olarak, tüm dizinleri chmod find . -type d -exec chmod 755 {} +etmek için tüm dizinleri 755 olarak değiştirmek için kullanabilirsiniz .
Kris Harper

2
+ Ne için?
Brettski

3
@Brettski: +işaret, finddosya yollarının listesine (veya çok uzunsa bir kısmına) genişletilir .
enzotib

3
- ne için?
Orient

2
--Komut satırı seçenekleri sonunu gösterir. Bu, kısa çizgi ile başlayan bir dosyanın, komut satırından sonra gelen komut satırı seçeneği olarak yorumlanmasını önler --.
Tim Tisdall

8

Sanırım içeri dir1girip

find . -type f | xargs chmod 655

hile yapacak.


bu da işe yarıyor ancak "Böyle bir dosya veya dizin yok" u bazı uyarılar var
netic

@ manetic: cevabımda söylediğim gibi, boşluk içeren dosya isimlerine bağlıdır.
enzotib

4
Bütünlüğü bulmak için değiştirerek. tipi f -print0 | xargs -0 chmod 655, her ne kadar @ enzotib'in cevabı daha kısa olsa da inanıyorum
mat ucube

Matt Ucube ne dedi
Sergiy Kolodyazhnyy
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.