Bagaimana cara mengubah izin beberapa file yang ditemukan dengan perintah find?

11

Saya memiliki direktori dengan banyak file. Sebagian file memiliki 755izin dan bagian lainnya memiliki 644izin. Saya ingin mengonversi file dengan 755izin 644. Saya telah mencoba baris berikut dengan menjalankannya dari direktori itu sendiri:

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

Namun sebagai hasilnya, izin hanya berubah untuk direktori itu sendiri dan setelah mengubahnya kembali saya menemukan bahwa izin file tetap tidak berubah. Apakah saya melewatkan sesuatu?

Eugene S
sumber
Perintah Anda menghapus bit yang dapat dieksekusi dari direktori, membuatnya tidak mungkin untuk chdir untuk itu dan melihat file yang dikandungnya. Karena itulah perintah itu sepertinya tidak berfungsi. Coba find ./ -type f -exec chmod -x {} \;saja.
Shadur

Jawaban:

17

Ok, sepertinya saya sudah menemukan masalah. Tampaknya harus ada ruang wajib antara {}dan \;, sehingga perintahnya akan terlihat seperti ini:

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

Daripada:

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

Juga masalah dengan mengubah izin direktori dapat diselesaikan dengan menambahkan -type fbendera, sehingga akan terlihat sebagai berikut:

find . -type f -perm 755 -exec chmod 644 {} \;
Eugene S
sumber
6
Anda bisa menggunakan +alih-alih \;mengurangi jumlah subproses yang dibuat.
Kevin
-type dakan menemukan direktori. -type fakan menemukan file.
Mick T