Find komutuyla bulunan birden fazla dosyanın izinlerini nasıl değiştirebilirim?


11

Çok sayıda dosya içeren bir dizin var. Dosyaların bir 755kısmı 644izinlere , diğer kısmı izinlere sahiptir. 755İzinleri olan dosyaları dönüştürmek istiyorum 644. Dizinin kendisinden çalıştırarak aşağıdaki satırı denedim:

find . -perm 755 -exec chmod 644 {}\;

Sonuç olarak, izin sadece dizinin kendisi için değişti ve geri değiştirdikten sonra dosya izinlerinin değişmeden olduğunu öğrendim. Bir şey mi özledim?


Komutunuz, çalıştırılabilir biti dizinden kaldırır, böylelikle ona girip içerdiği dosyalara bakmayı imkansız hale getirir. Bu yüzden komut çalışmıyor gibi görünüyor. find ./ -type f -exec chmod -x {} \;Bunun yerine deneyin .
Shadur

Yanıtlar:


17

Tamam, problemi bulduğum anlaşılıyor. Görünüşe göre ve arasında zorunlu bir boşluk olmalı , bu yüzden komut şöyle görünecektir:{}\;

find . -perm 755 -exec chmod 644 {} \;

Ziyade:

find . -perm 755 -exec chmod 644 {}\;

Ayrıca dizin izinlerini değiştirmeyle ilgili sorun bir -type fbayrak eklenerek çözülebilir , böylece aşağıdaki gibi görünecektir:

find . -type f -perm 755 -exec chmod 644 {} \;

6
Oluşturulan alt işlem sayısını azaltmak +yerine kullanabilirsiniz \;.
Kevin

-type ddizinleri bulacak. -type fdosyaları bulacaktır.
Mick T
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.