Saya sedang melakukan perubahan izin beberapa file secara rekursif massal yang telah saya migrasi ke sistem unix. Saya mengubahnya menjadi ug + rw, tetapi kemudian saya menemukan bahwa saya tidak dapat melintasi subdirektori. Saya melihat halaman manual chmod
dan tidak melihat penjelasan untuk mengecualikan direktori, jadi saya mencari di Google sedikit dan menemukan bahwa orang-orang digunakan find
untuk mengubah izin pada direktori untuk 'mengeksekusi' secara rekursif untuk pengguna dan grup. Saya melakukan itu dan kemudian saya bisa melihat mereka.
Tetapi bagi saya sepertinya saya bisa dapat melakukan penemuan ini chmod
- untuk secara rekursif mengubah file menjadi baca / tulis tetapi tidak membuat direktori tidak dapat dilacak. Sudahkah saya melakukan ini dengan cara yang 'benar' atau apakah ada cara yang lebih sederhana untuk melakukannya?
sumber
find
untuk mengatur semua hak akses file ke 600 dan semua hak akses direktori ke 700. (Saya tiba di sini melalui googling saya pada subjek.) Jika itu dapat dilakukan dengan satuchmod -R
perintah, jangan ragu untuk memperbaiki saya.chmod -R u=rwX,go= /path
melakukan hampir apa yang Anda inginkan: ia mengatur semua dir ke 700 dan semua file menjadi 600 atau 700, tergantung pada apakah bit eksekusi sudah ditetapkan atau tidak, dan saya pikir ini adalah hal yang benar untuk dilakukan .find
perintah yang Anda tulis sangat membantu sebagai templat. :)Menggunakan find adalah cara yang 'benar', dan satu-satunya cara yang terprogram, meskipun ada variasi:
atau
atau yang paling lambat:
Masing-masing memilih file (bukan direktori, bukan symlink) dan menerapkan
chmod
perintah di atasnya. Dua yang pertama mengurangi jumlah panggilanchmod
dengan menambahkan file ke akhir baris perintah internal setiap kali sampai maksimum tercapai (sering 10), kemudian memanggil perintah dan mulai membangun kembali perintah baru. Pernyataan terakhir memunculkan proses baru untuk setiap file, sehingga kurang efisien.sumber